2009-10-03 6 views
0

Parfois, dans mes scripts jQuery, ils ne fonctionnent que si j'imprime les événements. Par exemple ...Evénements d'imbrication jQuery

$(selector).click(function(){ 
    //do something such as create an element 
    $(selector).click(function(){ 
     //do something with the created element 
    }); 
}); 

Est-ce correct? J'ai toujours essayé de l'éviter car cela ne semble pas être la bonne façon de faire les choses. Cependant, parfois, cela ne fonctionne pas, alors je dois le faire.

Répondre

1

Le seul cas dans lequel vous devez imbriquer est le suivant si vous réaffectez le comportement de clic après le clic initial. Je ne sais pas si vous êtes à la recherche à la chaîne, par exemple

$('el') 
.click(function(){}) 
.hover(function(){}) 

Cela dépend de ce que vous faites, tout à fait.

0

Si vous souhaitez appliquer des événements à un élément, vous devez le faire une fois que les éléments ont été créés.

Une instruction jQuery qui définit un événement sur des éléments peut naturellement le définir uniquement sur les éléments qui existent à ce moment-là. Tout élément que vous créez après l'instruction n'obtiendra pas par magie les événements que vous avez définis sur les éléments auparavant. Ainsi, si vous créez un élément dans un événement et que vous souhaitez lui affecter un événement, vous devez le faire également dans l'événement.

+0

peut être utile de mentionner l'utilisation de 'live()' et la délégation d'événements pour certains événements –

Questions connexes