2010-12-10 5 views
0

Je voudrais créer une seule fonction pour automatiser htmlwireups. Certaines parties de la page sont chargées en utilisant ajax et je voudrais appeler une seule fonction pour préparer à la fois le document et les sections chargées paresseusement.Passage de paramètres au gestionnaire jquery ready

Exemple:

function WireHtml(target){ 
    $(target).ready(function(target){ 

     // call anything you would normally wire in a standard ready 
     // but only on the descendants of the target node such as wiring up 
     // an accordion 
     $(target).find(".accordion").accordion(); 

    } 
} 

Répondre

2

simplement passer à travers la variable target à la fonction interne sans faire référence dans l'appel jQuery ready.

function WireHtml(target){ 
    $(function(){ // <- note the lack of "target" references 

     // call anything you would normally wire in a standard ready 
     // but only on the descendants of the target node such as wiring up 
     // an accordion 
     $(target).find(".accordion").accordion(); 

    }); 
} 

La variable target sera disponible dans la fonction qui est attaché au gestionnaire en raison d'un prêt closure. Sont préférées à $().ready(yourFunction), bien qu'elles soient toutes équivalentes.

+0

cool beans .... juste un token off –

+0

Je ne suis pas sûr que '$(). Ready' fonctionne. '$()' retournera un objet jQuery vide, donc les gestionnaires d'événements liés à celui-ci n'auront aucun effet. –

+0

'$(). Ready (function() {alert (1);});' Quand la fonction de rappel est-elle exécutée? Immédiatement? –

Questions connexes