J'utilise des codes incorporés qui insèrent du code HTML dans la page de manière dynamique et comme je dois modifier ce code HTML inséré de manière dynamique, je veux qu'une fonction jQuery attende que la page soit chargée. J'ai essayé delay
mais cela ne semble pas fonctionner.
Ainsi, par exemple, le HTMl inséré dynamiquement a un élément div#abc
et j'ai cette jquery:
if ( $('#abc')[0] ) {
alert("yes");
}
l'alerte ne s'affiche pas.
J'apprécierais toute aide
Merci
$(window).load(function () {
....
});
Si vous devez attendre un iframe (et ne vous souciez pas des actifs, juste du DOM), essayez ceci:
$(document).ready(function() {
$('iframe').load(function() {
// do something
});
});
C'est le but de jQuery's .ready()
event:
$(document).ready(function() {
if ( $('#abc').length ) //If checking if the element exists, use .length
alert("yes");
});
Description: spécifie une fonction à exécuter lorsque le DOM est complètement chargé.
L'utilisation de jQuery.ready devrait suffire. Essaye ça
$(document).ready(function(){
//your code here
});
ou
$(function(){
});
qui est un raccourci de la première.
Essaye ça:
$(document).ready(function () {
if ( $('#abc')[0] ) {
alert("yes");
}
});
$(window).load(function () { ... }
peut être suffisant, mais sinon votre code intégré (quel que soit ce qui peut être) peut fournir une fonctionnalité de rappel que vous pouvez utiliser.
delay () ne devrait être utilisé que pour retarder animations .
Généralement, pour gérer mon JQuery avant ou après les chargements de page, utilisera:
jQuery(function($){
// use jQuery code here with $ formatting
// executes BEFORE page finishes loading
});
jQuery(document).ready(function($){
// use jQuery code here with $ formatting
// executes AFTER page finishes loading
});