1 回答

TA貢獻1796條經驗 獲得超4個贊
您正在覆蓋之前附加事件處理程序的 dom 元素。因此,您首先將單擊事件附加到按鈕,然后加載新的 HTML 并覆蓋附加了處理程序的按鈕,以便新按鈕沒有附加事件處理程序,這就是它們不響應單擊事件的原因。
將事件處理程序附加到不會被覆蓋的父元素,或者在加載并用新 html 覆蓋后重新附加事件處理程序。
我可能會選擇將事件附加到其父級,這樣當事件在 dom 樹上傳播時它就會得到處理。
var buttons_parent = $('.galleryadv');
buttons_parent.on('click', '.avatar-galleryadv', function(){
$(this).hide(0);
$('.avatar-previewgalleryadvsave').fadeIn(300);
});
buttons_parent.on('click', '.avatar-previewgalleryadvsave', function(){
$(this).hide(0);
$('.avatar-galleryadv').fadeIn(300);
});
這代替了btn_edit.on("click", function() {...和 btn_save.on("click", function() {...。另外,我不會通過保存在變量中的引用來引用處理程序內的按鈕,因為這些按鈕在覆蓋它們后將無效,因此我總是通過它們的類名來查找它們。
這樣,即使按鈕被覆蓋,處理其單擊事件的處理程序也完好無損。
- 1 回答
- 0 關注
- 143 瀏覽
添加回答
舉報