如何数据绑定.resizable().draggable()?

Zac*_*ott 5 jquery jquery-ui knockout.js

我知道你可以这样做:

$(".myClass").resizable().draggable();
Run Code Online (Sandbox Code Playgroud)

但你怎么data-bind=""用来做同样的事呢?

RP *_*yer 15

最简单的方法是为行为定义自定义绑定处理程序:

ko.bindingHandlers.resizable = {
    init: function(element, valueAccessor) {
         var options = valueAccessor();
         $(element).resizable(options);
    }  
};

ko.bindingHandlers.draggable = {
    init: function(element, valueAccessor) {
         var options = valueAccessor();
         $(element).draggable(options);
    }  
};
Run Code Online (Sandbox Code Playgroud)

然后,绑定到它像:

<div data-bind="resizable: { }, draggable: { }"></div>
Run Code Online (Sandbox Code Playgroud)

这允许您将任何您想要的选项传递给可调整大小和可拖动的调用.

样本:http://jsfiddle.net/rniemeyer/eCZH4/