2010-10-01 22 views
1

Je veux faire des messages d'erreur qui apparaissent (dans #error div) et disparaissent de page en page dans une boîte de dialogue jQuery. Certains des messages d'erreur sont ajoutés dynamiquement par jQuery $ ('body'). Append ('blablabla') ou une autre méthode d'insertion. Donc, cette construction:jQuery .dialog on load()

ne fonctionne pas. Ceci:

$('#error').live('load', function() { 
    $('#error').dialog({ 
     draggable: false, 
     modal: true 
    }); 
}); 

ne fonctionne pas non plus. Quelqu'un peut-il me dire ce que je devrais faire?

Répondre

1

Etes-vous en train d'essayer d'afficher les boîtes de dialogue lorsque la page est chargée? Si oui, vous cherchez $(document).ready(). Notez que cela déclenchera réellement la fonction inside quand le DOM est prêt à être traversé; C'est généralement ce que vous voulez parce que vous ne voulez pas attendre que le navigateur charge complètement la page avant d'exécuter votre code. Si vous voulez attendre que la page soit chargée, utilisez $(window).load().

L'événement load ne peut être lié qu'à un contenu chargé par le navigateur, par ex. cadres, scripts, images, etc:

L'événement de charge est envoyé à un élément quand et tous les sous-éléments ont été complètement chargé. Cet événement peut être envoyé à n'importe quel élément associé à une URL : images, scripts, cadres, iframes, et l'objet window.

Par conséquent, un <div> ne peut pas être lié à un événement load.

+0

C'est très mauvais. Mon but est d'enrouler un élément dans un dialogue quand il apparaît dans DOM. – Antiarchitect

+0

Ensuite, utilisez juste '$ (document) .ready()' - il insérera la boîte de dialogue lorsque le DOM est prêt pour la traversée. –

+0

Ne fonctionne pas. Je pense que c'est parce que l'élément #error ajouté dynamiquement après que le document est prêt. Ou je me méprends sur comment fonctionne js. – Antiarchitect