2008-12-21 6 views
3

Voici le scénario:
ThickBox est ouvert à partir de la fenêtre parent (lorsque le bouton est enfoncé) avec le contenu Ajax (forme basée sur div) qui contient l'ensemble des entrées avec le support de saisie semi-automatique. Une fois que ThickBox (form) est fermé, les valeurs d'entrée doivent être passées à la fenêtre parente.Le rappel initial pour manipuler le contenu ThickBox avec jQuery

Question:
Le contenu de ThickBox est chargé dynamiquement, alors quelle est la bonne façon d'avoir un rappel initial pour manipuler ThickBox contenu avec jQuery (type de (ThickBox) $ .ready ..)?

Répondre

3

Mon option préférée est d'étudier d'autres options de plugin modales telles que jqModal. Cela expose les hooks d'événement onShow et onHide que vous pouvez utiliser. Thickbox montre son âge, il n'expose pas les événements 'show' que vous pouvez observer. Si vous êtes décidé à utiliser thickbox, vous avez quelques options.

Une option consisterait à utiliser les événements ajax globaux que jQuery expose par exemple $.ajaxSuccess event. Cela se déclenchera lorsque thickbox aura demandé l'affichage des données. Cependant, à ce stade, thickbox n'a peut-être pas ajouté les données au modal, vous devrez l'essayer.

Par exemple,

$.ajaxSuccess(function(evt, request, settings){ 
    //ajax method has completed 
}); 

Sachez que cet événement se déclenche à la fin de chaque événement ajax qui se passe dans votre page Par conséquent, vous voudrez peut-être quelques contrôles supplémentaires

Une autre option est de changer le thickbox script et ajoutez votre propre code de rappel qui vous permet de transmettre une fonction qui sera levée lorsque le modal est affiché.

+0

Merci de pointer sur jqModal, jusqu'ici j'ai changé pour l'utiliser, plutôt que de gérer l'événement jquery global ou de modifier Thickbox –

-1

Vous pouvez utiliser le plug-in LiveQuery. Ce plugin va intercepter les modifications dans le DOM et relacher automagiquement les autres plugins lisant le DOM

+0

lien spécifié est cassé –

+0

Merci pour l'avertissement. J'ai mis à jour la réponse maintenant. –

Questions connexes