Heim > Web-Frontend > js-Tutorial > Detaillierte Erklärung des Unterschieds zwischen der Verwendung von „on' anstelle von „delegate' und „live' in jQuery

Detaillierte Erklärung des Unterschieds zwischen der Verwendung von „on' anstelle von „delegate' und „live' in jQuery

黄舟
Freigeben: 2017-06-26 10:04:22
Original
1211 Leute haben es durchsucht

In den frühen Tagen wurde bei der Zuweisung von Ereignissen oder Werten zu dynamischen Elementen, die später auf der Seite geladen wurden, aufgrund der geringen Effizienz (tatsächlich) Live verwendet Es gibt nicht viele Daten und es ist nicht zu spüren) ), später wird stattdessen der Delegate verwendet, und später, nach 1.7, wird on anstelle von Delegate verwendet. Sowohl Live als auch Delegate können in der neuen Version weiterhin verwendet werden schriftlich. Es kann leicht zu Verwirrung kommen, wenn Sie eine Weile nicht schreiben. Schreiben Sie es also auf. Wenn Sie auf eine beliebige Schaltfläche in p klicken, um eine neue Schaltfläche hinzuzufügen:


Seite:

<div id="panel">   
      <input type="button" name="name"  value="clone"class="btnAdd" />
</div>
Nach dem Login kopieren

Skript:

1.1 mit live

jQuery Version 1.3+

$(&#39;.btnAdd&#39;).live(&#39;click&#39;, function () {
    $(this).clone().appendTo(&#39;#panel&#39;);
});
Nach dem Login kopieren

1.2 Live direkt auf „on“ umstellen, ohne einen Bereich wie #panel This anzugeben gilt für die Schaltfläche am Anfang der Seite. Mit anderen Worten: Dies kann Live nicht direkt ersetzen > 2. Um den Delegaten zu verwenden, müssen Sie ihm einen Bereich zuweisen, z. B. #panel, lassen Sie ihn darin finden. Dies kann den gleichen Effekt wie live erzielen.

$(&#39;.btnAdd&#39;).on(&#39;click&#39;, function () {    
$(this).clone().appendTo(&#39;#panel&#39;);
});
Nach dem Login kopieren

jQuery Version 1.4.3+


3.使用on 给它一个范围才行,如#panel,让它到里面找. 这样可以实现live和delegate一样的效果.

里面的'click', '.btnAdd'跟上面的delegate是相反的.只要记住on click是挨在一起的就行了.

jQuery版本1.7+

$(&#39;#panel&#39;).on(&#39;click&#39;, &#39;.btnAdd&#39;, function () {
    $(this).clone().appendTo(&#39;#panel&#39;);
});
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung des Unterschieds zwischen der Verwendung von „on' anstelle von „delegate' und „live' in jQuery. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage