2010-03-19 15 views
0

J'ai une série de cadres (4) qui sont utilisés dans une page pour créer un chargement de contenu dynamique via des appels Ajax.Ciblage d'un iFrame une fois avec jQuery

Dans chacune de ces trames, je cible les éléments de niveau parent et les mets à jour avec leur contenu respectif, par ex.

$("#loadingGrid1",top.document).show(); 
$("#frameSkills",top.document).hide(); 

Dans jQuery est-il possible de lieu de cibler des éléments spécifiques à la page parent plusieurs fois, il suffit de cibler la page une fois dans un exemple de variable

var parentPage=$('#frameSkills',top.document); 

Et puis utiliser cette variable pour appliquer le contenu comme $(parentPage > #loadingGrid1).hide()

Espoir Je l'ai expliqué ce que je suis après assez. Fondamentalement, je dois appeler "top.document" dans chaque sélecteur jQuery que je fais et cela semble être une perte d'énergie.

Répondre

0

Un objet Jquery peut être utilisé comme contexte, tout comme un noeud DOM.

var parentPage = $('#frameSkills',top.document); 
$("#myselector", parentPage).dostuff(); 

Ou vous pouvez utiliser la fonction find:

parentPage.find("#myselector").dostuff(); 
0

Quelque chose comme cela me semble plus propre à:

var page = $(top.document); //Define once 
page.find("#loadingGrid1").show(); 
page.find("#frameSkills").hide(); 

Lorsque vous appelez $(selector, context) vous » re (dans tous les cas comme ça de toute façon) appeler context.find(selector) à l'intérieur de toute façon ... pourrait aussi bien le rendre facile à lire/écrire/chaîne que vous allez.