jQuery live mit dem Ready- oder Load-Event

8

Ich verwende das Tooltip-Plugin von jQuery Tools, das mit $('selector').tooltip() initialisiert wird. Ich möchte dies auf jedes aktuelle oder zukünftige .tooltipper -Element ansprechen. Ich dachte, dass das Folgende funktionieren würde:

%Vor%

Aber es war erfolglos - das Bereit-Ereignis hat nicht geschossen. Das Gleiche gilt für die Ladung. Ich habe gelesen, dass Live-Abfrage kann das Ergebnis von mir suchen, aber sicherlich gibt es eine Möglichkeit, jQuery .live() zu verwenden, um es abzuziehen, unter Berücksichtigung der Dokumentation sagt, dass es für alle jQuery-Ereignisse funktioniert, von denen ich glaube ready ist eins.

    
Steven Xu 07.07.2010, 15:41
quelle

3 Antworten

12

Zitiert von der jQ-API ( Ссылка ):

  

In jQuery 1.3.x können nur die folgenden JavaScript-Ereignisse (zusätzlich zu benutzerdefinierten Ereignissen) mit .live () verknüpft werden: Klicken, dblclick, keydown, keypress, keyup, mousedown, mousemove, mouseout, mouseover und mouseup.

     

Ab jQuery 1.4 unterstützt die .live () -Methode sowohl benutzerdefinierte Ereignisse als auch alle JavaScript-Ereignisse.

     

Ab jQuery 1.4.1 arbeiten sogar Fokus und Unschärfe mit Live (Zuordnung zu den besser geeigneten, sprudelnden, fokussierten und fokussierten Ereignissen).

     

Ab jQuery 1.4.1 kann das Hover-Ereignis angegeben werden (Zuordnung zu "mouseenter mouseleave").

.live() scheint das bereit-Ereignis nicht zu unterstützen.

    
HurnsMobile 07.07.2010, 15:50
quelle
5

Um zu der ausgezeichneten Antwort von HurnsMobile hinzuzufügen; Mit bindReady() , dem internen Aufruf, den jQuery an das Ereignis zum Laden des Dokuments bindet, wenn Sie $(some_function) oder $(document).ready(some_function) aufrufen, sehen wir, warum wir nicht an "ready" binden können:

%Vor%

Um es zusammenzufassen, ruft $(some_function) eine Funktion auf, die an Folgendes bindet:

  • DOMContentLoaded
  • onreadystatechange (DOMContentLoaded)
  • window.load / onload

Am besten wäre es, an die Aktionen zu binden, die neue .tooltipper -Elemente erstellen, anstatt zu versuchen, auf das bereit-Ereignis zu warten (was nur einmal vorkommt).

    
Sean Vieira 07.07.2010 16:01
quelle
1

HurnsMobile hat Recht. JQuery Live unterstützt das Ready-Event nicht.

Deshalb habe ich ein Plugin erstellt, das beides kombiniert. Sie registrieren Ihren Rückruf einmal, und dann müssen Sie das Plugin einmal für den Inhalt aufrufen, den Sie manuell hinzufügen.

%Vor%

Dann beim Erstellen neuer Inhalte:

%Vor%

oder

%Vor%

Eine Demo ist hier verfügbar: Ссылка

Sehen Sie sich den einleitenden Beitrag hier an: Ссылка

Sehen Sie sich auch Ссылка an, das auf Änderungen am Dom wartet.

    
Lars Corneliussen 20.04.2011 07:03
quelle

Tags und Links