Javascript 剔除dom操作后回调jquery函数
我对Knockout还相当陌生,我正在尝试使用一个jquery插件,它将自定义样式应用于某些元素。但是,由于我有一个页面,它从ajax调用中获取内容,并且所有元素都是通过敲除动态构建的,因此初始jquery函数调用不知道页面上有任何元素,因此没有对这些元素应用样式 所以我要问的是,在完成敲除操作元素(DOM)之后,如何回调jquery函数 现在我调用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
$(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
}
};