假设当前页面的 JS 文件中有如下函数:
- function A(){
- function B();
- }
- function B(){
- $(document).on("click","# 元素 id",function(){
- dosomething......;
- });
- }
函数 A 是一个按钮上绑定的 onclick 函数处理;
那么每次点击按钮触发 A 函数之后, 都会导致 B 函数的执行, 进而 $("# 元素 id") 这个元素就会绑定一次点击事件.
如果多次触发 A 函数之后, 导致 $("# 元素 id") 上面绑定多次的点击事件,
然后再点击 $("# 元素 id") 的时候, 就会发现该元素上面的点击事件的逻辑被执行多次, 进而导致页面卡顿, 表单重复提交等情况.
为避免这种情况, 就需要在使用 on 绑定函数的时候, 先使用 off 解绑之前的函数. 如下写法:
- $(document).off("click").on("click","# 元素 id",function(){
- dosomething......;
- });
这样既可避免 元素上绑定的点击事件的逻辑重复执行多次.
来源: http://www.bubuko.com/infodetail-3072649.html