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

时间:2012-12-20 15:36:39

标签: 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>

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

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

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

1 个答案:

答案 0 :(得分: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