2012-12-20 36 views
7
创建的元素

你好,我有我的看法如下代码:如何将jQuery效果适用于Knockout.js

 <div data-bind="foreach: Elements"> 
      <div data-bind="attr:{id: id}"> 
       <img data-bind="attr:{src: ImageSource}" /> 
       <p data-bind="text: Name"></p> 
      </div> 
     </div> 

但对于每一个新的元素我要添加了jQuery effet,如:

 $("#draggable").draggable(); 

是否有任何方式将subsribe添加到此列表中的元素后发生的事件?

+0

如果您希望将事件订阅与knockout分开,您可以查看使用[MutationObserver](https://developer.mozilla.org/en-US/docs/DOM/MutationObserver)。 MutationObserver为开发人员提供了一种对DOM中的变化作出反应的方法。它被设计为DOM3 Events规范中定义的突变事件的替代品.' – Nope

回答

10

做到这一点的最好方法是使用自定义绑定。

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

    <div data-bind="foreach: Elements"> 
     <div data-bind="attr:{id: id}, draggable: {}"> 
      <img data-bind="attr:{src: ImageSource}" /> 
      <p data-bind="text: Name"></p> 
     </div> 
    </div> 

在文档中查看更多关于它的信息:http://knockoutjs.com/documentation/custom-bindings.html

+0

OMG!许多,很多,非常感谢! – Eugene

相关问题