天天看点

解决多次触发change或click事件系统卡死问题

最近使用bootstrap table的时候,自己写了个表格行内编辑,其中有2个select选择器A、B,要在每次改变了select选择器A的值时触发另一个select选择器B的onchange事件。过程中使用了$(ele).trigger('change')来触发select选择器B的onchange事件,但是由于本人做的行内编辑表格要求可同时编辑多行,多行编辑的时候在三行及三行以内select的触发事件都未表现出异常,但是,当第四行也点击触发了onchange事件,系统就会卡死崩溃。

解决多次触发change或click事件系统卡死问题

在网上参考了别人的解决思路,总结了自己的问题原因大致如下:

多行编辑,select具有不同id但有相同class且绑定的是同一个onchange方法,可能造成了多个事件互串的情况。

解决方法如下:

使用$(ele).off('change')解除其他行select选择器B的绑定事件。再进行当前选择器的$(ele).trigger('change')事件。

$(".c_select").each(function(){//c_select为select的class,循环解除所有select绑定事件
    $(this).off('change');
});
$("#versionCode_"+idx).trigger('change');//触发当前select的onchange事件
           

继续阅读