Javascript 剔除dom操作后回调jquery函数

Javascript 剔除dom操作后回调jquery函数,javascript,jquery,dom,knockout.js,Javascript,Jquery,Dom,Knockout.js,我对Knockout还相当陌生,我正在尝试使用一个jquery插件,它将自定义样式应用于某些元素。但是,由于我有一个页面,它从ajax调用中获取内容,并且所有元素都是通过敲除动态构建的,因此初始jquery函数调用不知道页面上有任何元素,因此没有对这些元素应用样式 所以我要问的是,在完成敲除操作元素(DOM)之后,如何回调jquery函数 现在我调用jquery函数如下:- $(document).on("load",function(){ $(".element").callPlugi

我对Knockout还相当陌生,我正在尝试使用一个jquery插件,它将自定义样式应用于某些元素。但是,由于我有一个页面,它从ajax调用中获取内容,并且所有元素都是通过敲除动态构建的,因此初始jquery函数调用不知道页面上有任何元素,因此没有对这些元素应用样式

所以我要问的是,在完成敲除操作元素(DOM)之后,如何回调jquery函数

现在我调用jquery函数如下:-

$(document).on("load",function(){
    $(".element").callPlugin("add-style");
});

我建议通过自定义绑定执行此操作: 这样,您的“外部代码”就可以与数据绑定更加集成。如有必要,您还将获得更新支持

阅读更多关于这个概念的信息
applyBindings
是同步的,因此您可以在
ko.applyBindings(VM)
之后调用
callPlugin
(在下一行)

或者,如果要多次更新UI,可以使用。假设
.element
是一个
(它也可以是其他任何东西),您的标记将如下所示:

<div class="element" data-bind="text: 'This is just some text which KO will bind',
                                updateUI: true">
This text will change. Wait for it..
</div>
这将使您的插件在对DOM进行任何更改时自动初始化和更新


希望这有帮助

将其标记为正确,因为这用很好的示例进行了解释。我确实使用了定制绑定,而且很有效。谢谢两天以来,我一直在努力寻找解决办法。到目前为止,我很喜欢Knockout。值得一提的是,当您使用
ko.options.deferUpdates=true时,
ko.applyBindings()
的绘制是不同步的。因此,例如,如果您尝试在之后直接获取一个
svg.getCTM()
,它将无法按建议工作。
<div class="element" data-bind="text: 'This is just some text which KO will bind',
                                updateUI: true">
This text will change. Wait for it..
</div>
ko.bindingHandlers.updateUI = {
    init: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext){          
        // This will be called when the binding is first applied to an element
        // Set up any initial state, event handlers, etc. here
        $(".element").callPlugin("add-style");
    },
    update: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
        // This will be called once when the binding is first applied to an element,
        // and again whenever the associated observable changes value.
        // Update the DOM element based on the supplied values here.
        $(".element").callPlugin("update-style"); // just saying
    }
};