繁体   English   中英

第一次后多次调用该功能(Kendo Grid)

[英]Function being called multiple times after the first time (Kendo Grid)

我什至不知道从哪里开始。 我正在使用Kendo Grid列出来自服务器的数据。 第一次加载时一切都很好,包括当我在dataBound函数中添加其他函数和dom元素时。 调用服务器似乎可以更新(同步)网格。 但是,似乎dataBound函数在第二回合被称为附加时间。 执行dataBound中编码的单击功能,总共执行4次。 我如何测试问题出在哪里以及我需要破坏什么才能停止这种令人发指的行为?

我什至不知道要为您节省保存在我的整个网站中的代码。 这种行为背后的基本理论是什么,因为我显然根本不了解javascript以及因此Kondo的工作原理吗? 请问我该如何测试。 谢谢!

一个快速的解决方案可能是在数据绑定中使用off()然后on(),例如

$(".cell").off("click").on("click", function(e){ ... });  

这将摆脱以前附加的处理程序,并确保您只有一个。

更好的是,在Grid生成代码之外使用事件委托

$(document).on("click", ".cell", function(e) { ... });

使用事件委托,在设置事件处理程序时,事件的目标不必存在。 在上面的示例中,单击是在已经存在的文档对象上,但是仅当实际单击了具有“单元”类的元素时,处理程序才会触发。 您甚至可以在创建网格之前在document.ready中定义一次此处理程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM