layui和jquery中加载出来的按钮出现重复加载
jQuery 中 ( ′ . c l a s s n a m e ′ ) . o n ( ′ c l i c k ′ , f u n c t i o n ( ) ) ; 与 ('.classname').on('click',function(){});与 (′.classname′).on(′click′,function());与(document).on(‘click’,’.classname’,function(){});
$('.classname').on('click',function(){})
该方法只能为页面现有的元素绑定点击事件,如果是动态生成的新的元素,是没有事件的
$(document).on('click','.classname',function(){});
该方法事件绑定在document上,新产生的元素如果符合指定的元素,也能触发此事件
在layui中为加载出来的按钮添加事件只能使用第二种来实现绑定,但会出现重复加载的现象,这样导致接受到的监听数据会含多个
解决方法
可以在为添加点击事件前先停止之前的点击事件,有下面两种方法:
- off() ,
$(document).off('click','classname').on('click','.classname',function(){});
或者
$('#XX').off().click(function () { });
; - unbind()
$(document).unbind('click','classname').on('click','.classname',function(){});
或者
$('#XX').unbind().click(function () { });
;
上面方法可以通用的解决事件的嵌套问题