如何将jquery效果应用于由Knockout.js创建的元素

Eug*_*ene 7 javascript 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>
Run Code Online (Sandbox Code Playgroud)

但对于每个新元素,我想添加jQuery effet,如:

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

是否有任何方法可以将元素添加到此列表后发生的事件?

Art*_*kov 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>
Run Code Online (Sandbox Code Playgroud)

在文档中阅读更多相关信息:http://knockoutjs.com/documentation/custom-bindings.html.