Rumah > Soal Jawab > teks badan
Sila bantu, elemen yang dijana secara dinamik oleh jq perlu diikat dengan peristiwa klik untuk berkuat kuasa, dan fungsi yang dijalankan juga mempunyai peristiwa klik, dan kemudian fungsi itu dilaksanakan dua kali Bagaimana untuk menyelesaikan situasi ini?
漂亮男人2017-07-05 10:40:45
Gunakan objek acara untuk mencari sasaran yang anda benar-benar ingin klik
曾经蜡笔没有小新2017-07-05 10:40:45
Sebenarnya, ia tidak lebih daripada acara yang diikat dua kali atau acara menggelegak
1
$(ele).unbind('click').click(function() {
// to do
})
2, Batalkan menggelegak
$(ele).click(function(e){
e.stopPropagation();
});
某草草2017-07-05 10:40:45
Alih keluar pemantauan dahulu, kemudian pantau
.off(handler).on(handler)
过去多啦不再A梦2017-07-05 10:40:45
function removeMaopao(ev){
var eEvent = ev || event;
eEvent.stopPropagation() && eEvent.stopPropagation;
return false;
}
天蓬老师2017-07-05 10:40:45
Orang di atas membuatnya lebih jelas.
1. Mendapati masalah
1.1 terikat dua kali, kerana elemen yang dijana secara dinamik terikat pada acara, tetapi dalam acara ini acara terikat sebelumnya dipanggil semula
$('document').unbind('click').click(function() {
//取消绑定的回调事件
})
1.2 Ia masih disebabkan oleh kejadian menggelegak (jika anda tidak biasa dengan gelembung, sila baca maklumat yang berkaitan dahulu)
$('document').click(function(e){
//取消事件冒泡
e.stopPropagation();
});
2. Elemen yang dihasilkan secara dinamik tidak semestinya perlu menggunakan peristiwa mengikat dinamik
Pengendali acara menggunakan kaedah delegate() berfungsi pada elemen semasa atau akan datang (seperti elemen baharu yang dicipta oleh skrip).
Klik di sini untuk melihat dokumen terperinci: http://www.w3school.com.cn/jq...
$("p").delegate("button","click",function(){
$("p").slideToggle();
});