2016-06-13 13 views

Antwort

0

Wenn es ein Ereignis gibt, das Sie verwenden können, wenn Sie auf sie zugreifen müssen oder wenn sie ankommen, verwenden Sie dieses Ereignis.

Wenn kein Ereignis ist man in einhaken können, können Sie auf sie warten eine Timer-Schleife (zB Polling für sie) erscheinen mit:

(function() { 
    function doSomething() { 
     var elements = $("selector-for-the-elements"); 
     if (!elements.length) { 
      // Not there yet, keep waiting 
      setTimeout(doSomething, 100); // 100ms = 1/10th second, adjust as needed 
      return; 
     } 
     // We have them, use them 
    } 
    $(doSomething); // Make the first call happen on document ready 
})(); 
0

Vorausgesetzt, dass Sie einen Trigger verwenden Sie das Element zugreifen zu können, die folgende funktioniert:

$("<trigger>").on("click", function() { 
    <access loaded element> 
}); 
0

Verwendung event delegation

$(".parent_class").on("click",".the_element_you_need",function() { 
//code here 
}); 
+0

Gibt es ein Ladeereignis? Click Event ist nicht auf der Seite – user3555971

0
$(document).on("click",".your_element",function() { 
//do something 
}); 
1

Da Sie bereits jQuery erwähnt, werde ich Ihnen eine jQuery spezifische Antwort geben:

$("body").on("click",".selector-late",function(e){ 
    //Your Code Here. 
    //e.delegateTarget returns the body element. 
    //e.currentTarget returns .selector-late element. 
    //e.target returns the element which was clicked. (could be a child of .selector-late too) 
}); 

Erläuterung:

  1. Wir sind auf einem Element den Ereignis-Listener verbunden sind, die bereits existiert. (body in diesem Fall könnte es ein beliebiges Elternelement des Elements sein.)
  2. click ist das Ereignis, das ich angehängt habe. Sie können je nach Bedarf ändern.
  3. .selector-late wird der Selektor für Ihr Element, das jederzeit in der Zukunft geladen werden kann.

Signatur

$(staticAncestors).on(eventName, dynamicChild, function() {}); 

Diese Methode in detail here.

+0

@ user3555971 - Glück? –