2010-07-18 7 views
1

Ce qui suit ne fonctionne pas sur ma page:JQUERY iFrame, fonctionne avec une alerte, ne fonctionne pas sans une alerte - étrange? Pourquoi

$("#bob").ready(function() { 
    $("#bob").contents().find(".findme").css("background", "red"); 

    $(document.getElementById('bob').contentWindow.document).find('.findme').bind("mousedown", function() { 
     alert( $(this).text()); 
    }); 
}); 

Mais si j'ajouter une alerte, que je suppose ajoute un certain type de délai à laisser le iframe avant JS continue, il FONCTIONNE?

$("#bob").ready(function() { 
    alert(1) 
    $("#bob").contents().find(".findme").css("background", "red"); 

    $(document.getElementById('bob').contentWindow.document).find('.findme').bind("mousedown", function() { 
     alert( $(this).text()); 
    }); 
}); 

Le retard est ce qui le fait fonctionner, le prêt ne devrait-il pas en prendre soin? Aussi, est-il un moyen de rendre le ci-dessus en direct, de sorte que le moment n'est pas un problème?

+1

Voir [jQuery .ready dans un iframe inséré dynamiquement] (http://stackoverflow.com/questions/205087/jquery-ready-in-a-dynamically-inserted-iframe). Cela devrait fonctionner si vous utilisez 'load' à la place de 'prêt'. –

Répondre

2

Essayez de mettre cela dans un

$ (document) .ready (function() {

Au lieu de

$ ("# bob"). Prêt (function() {

Questions connexes