Hinweis: jquery unterstützt nach Version 1.8 keine Live-Events mehr
In tatsächlichen Projekten aufgetretene Probleme, dynamisch hinzugefügte Tags
Live verhindert das Auftreten von Blasenbildung. Unabhängig davon, ob Sie return false oder e.stopPropagation() verwenden, können Sie das Auftreten von Blasenbildung nicht verhindern
Das Folgende ist ein Beispiel meiner eigenen Zusammenfassung
<p id="box"> <a href="javascript:;" class="delete">init html</a> </p> <button id="add">add html</button>
$(function() { // 用click事件 $(document).click( function(event) { console.log('click'); event.stopPropagation(); }); // 用delegate事件 $(document).delegate('.delete','click', function(event) { console.log('delegate'); event.stopPropagation(); }); // 用live事件 $('.delete').live('click', function(event) { console.log('live'); event.stopPropagation(); //return false; }); // 新添加的a标签 $('#add').click(function() { var html = '<a href="javascript:;" class="delete">new html 1</a>'; $('#box').append(html); }); $('#box').click(function() { console.log('box emit'); }); });
Lösung:
Wir wissen, dass event.stopPropagation( ) wirkt sich negativ auf den Klick aus. Da die Verhinderung von Blasenbildung wirksam ist, können Sie das Klickereignis an das neu dynamisch hinzugefügte Etikett binden.
Das obige ist der detaillierte Inhalt vonjquery verhindert das Sprudeln von Ereignissen und seine Lösung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!