Heim >Web-Frontend >js-Tutorial >jquery verhindert das Sprudeln von Ereignissen und seine Lösung

jquery verhindert das Sprudeln von Ereignissen und seine Lösung

一个新手
一个新手Original
2017-09-13 10:05:582132Durchsuche


Live-Event zum dynamischen Hinzufügen von Tags

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

html
<p id="box"> 
  <a href="javascript:;" class="delete">init html</a>
</p> 
<button id="add">add html</button>
jq
 $(function() {

     // 用click事件
    $(document).click( function(event) {
        console.log(&#39;click&#39;);
        event.stopPropagation();
    });

    // 用delegate事件
    $(document).delegate(&#39;.delete&#39;,&#39;click&#39;, function(event) {
        console.log(&#39;delegate&#39;);
        event.stopPropagation();
    });

    // 用live事件
    $(&#39;.delete&#39;).live(&#39;click&#39;, function(event) {
        console.log(&#39;live&#39;);
        event.stopPropagation();
        //return false;
    });

    // 新添加的a标签
    $(&#39;#add&#39;).click(function() {
        var html = &#39;<a href="javascript:;" class="delete">new html 1</a>&#39;;
        $(&#39;#box&#39;).append(html);
    });

    $(&#39;#box&#39;).click(function() {
        console.log(&#39;box emit&#39;);
    });

});

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn