1
我试图让一个元素只有在满足某个条件时才可以拖动。这里是我的代码:jquery有条件拖动可观察?
$(".folder-box").draggable({ revert: "invalid" }); // prevent this from being applied when some ko.observable property is true
我不想禁用该元素,我只是想阻止它是可拖动的。
我试图让一个元素只有在满足某个条件时才可以拖动。这里是我的代码:jquery有条件拖动可观察?
$(".folder-box").draggable({ revert: "invalid" }); // prevent this from being applied when some ko.observable property is true
我不想禁用该元素,我只是想阻止它是可拖动的。
您必须为可拖动效果编写一个自定义绑定处理程序,以依赖于observable属性。幸运的是,这是如此简单:
ko.bindingHandlers.draggable = {
update: function(element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor());
if(value) {
$(element).draggable({ revert: "invalid" });
} else if($(element).data('draggable')) {
$(element).draggable("destroy");
}
}
};
你会然后用它像:
<div class="folder-box" data-bind="draggable: yourObservable"></div>
Jalayn有正确的想法。这是一个演示使用稍微不同的版本的小提琴:http://jsfiddle.net/blugrasmaniac/ZVDMe/ – 2013-05-01 17:31:59
谢谢你们。出于某种原因,我不得不使用'ui-draggable'而不是'draggable',但现在它们都很好用。干杯! – SB2055 2013-05-01 22:00:49