javascript - jq klik acara berulang masalah pelaksanaan
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-07-05 10:38:45
0
9
1030

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?

曾经蜡笔没有小新
曾经蜡笔没有小新

membalas semua(9)
漂亮男人

Gunakan objek acara untuk mencari sasaran yang anda benar-benar ingin klik

曾经蜡笔没有小新

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();
});
某草草

Alih keluar pemantauan dahulu, kemudian pantau
.off(handler).on(handler)

Peter_Zhu

Adakah ini menggelegak?

typecho

matikan Buka ikatan dahulu, kemudian ikat

滿天的星座
$('document').unbind('click').click(function() {
            //dosomething
            })
过去多啦不再A梦
function removeMaopao(ev){
        var eEvent = ev || event;
        eEvent.stopPropagation() && eEvent.stopPropagation;
        return false;
    }
Peter_Zhu

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();
});
phpcn_u1582

Ingat untuk mematikan() selepas on()

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan