天天看點

解決多次觸發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事件
           

繼續閱讀