Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Einführung in alternative Methoden nach dem Löschen von Live in jQuery 1.9 und höheren Versionen

Detaillierte Einführung in alternative Methoden nach dem Löschen von Live in jQuery 1.9 und höheren Versionen

黄舟
黄舟Original
2017-06-26 09:31:541226Durchsuche

Laut der offiziellen Beschreibung von jQuery wird die Live-Methode in 1.7 nicht mehr empfohlen. Diese Methode wurde in 1.9 gelöscht. Und es wird empfohlen, in zukünftigem Code stattdessen die on-Methode zu verwenden. Die on-Methode kann drei Parameter akzeptieren:
Ereignis Name, Trigger-Selektor und Ereignisfunktion.

Was besondere Aufmerksamkeit erfordert, ist: Der Triggerselektor in der Mitte der on-Methode ist der Klassenname, die ID oder der Elementname des HTML-Elements , um das es sich handelt Zum Hinzufügen verwenden Sie es. Sie können den Live-Effekt erzielen.

Zum Beispiel hat mein HTML-Dokument bereits ein p mit der ID des übergeordneten Elements, und ich werde dann dynamisch ein span mit der Klasse des Sohns hinzufügen Ich binde ein Ereignis an diese Spanne, dann muss ich so schreiben:

$('#parent').on('click','.son',function(){alert('test')});

Dieser Triggerselektor ist eigentlich der $(e, der die Ereignisparameter einmal in JQ .target bestimmt ).is(selector), nur das Triggerobjekt, das dem Triggerselektor entspricht, wird ausgelöst. Dies erfolgt über den Event-Bubbling-Mechanismus, sodass Live nicht mehr vorhanden sein muss, da es von 1.7 bis 1.9 existiert. Dieser Artikel enthält nicht viel Inhalt. Als Nächstes verwenden wir diese Funktion, um etwas Sinnvolles zu tun und zu demonstrieren. ~ In niedrigeren Versionen des IE wird das A-Tag einen gepunkteten Rand haben, wenn die Maus gedrückt wird Fokus von. Wir können dieses Problem lösen, solange wir im globalen Ereignis einige Tricks anwenden. Der Fokus sprudelt in modernen Browsern nicht, kann aber in älteren Browsern sprudeln. Daher ist es effektiv, Live für den Fokus in Browsern niedrigerer Versionen zu verwenden. In Versionen vor jQuery 1.9 können wir so schreiben:

$("a").live("focus",function(){  this.blur();
});

Da Live nach jQuery 1.9 gelöscht wurde, sollten wir so schreiben:

$(document).on("focus","a",function(){  this.blur();
});

Es gibt noch ein weiteres Problem, das Sie beachten sollten. Wenn Sie von der Live-Schreibmethode zur On-Writing-Methode wechseln, vergessen Sie nicht, die Anrufkette anzupassen. Denn der Rückgabewert von Live ist das Objekt, das durch das Ereignis ausgelöst wird, und die Verwendung von on bezieht sich auf das Containerobjekt.

//jQuery1.9-$("#panel").find("p").live("click",function(){
  alert("x");
}).addClass("x");//jQuery1.9+$("#panel").on("click","p",function(){
  alert("x");
}).find("p").addClass("x");   

Achten Sie auf das find("p") am Ende, sonst gibt es kein Problem.

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in alternative Methoden nach dem Löschen von Live in jQuery 1.9 und höheren Versionen. 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