2010-02-15 4 views

Répondre

7

Vous devez lier l'aide .live() Méthode

$('#add').live('click', function(e) { 
    e.preventDefault(); 
    alert('hello'); 
}); 

Le .live() est en mesure d'affecter des éléments qui n'ont pas encore été ajoutés au DOM par l'utilisation de la délégation de l'événement.

http://api.jquery.com/live/

+0

Impressionnant cela fonctionne .Mais Quel est le problème avec lier? – Dee

+0

Méthode .live() Attache un gestionnaire à l'événement pour tous les éléments qui correspondent au sélecteur actuel, maintenant ou dans le futur. – Dee

+0

Yup Dee a raison, et pour ajouter à cela .bind() ne fonctionne que pour DOM w/c sont ajoutés avant le chargement de la page. Si vous faites un clic droit sur la source de votre page, tous les éléments peuvent être sélectionnés par .bind() uniquement. nouveaux éléments DOM ou à la volée créés peuvent être sélectionnés par .live() –

3

Peut-être que vous devriez utiliser un XHTML valide:

<a id="add" class="add" href="#">Test</a> 

Et dans le jQuery:

$('#add').live('click', function(e) { 
    e.preventDefault(); 
    alert('hello'); 
}); 
+1

Qui a dit utiliser XHTML? Ce qu'il a, c'est un code HTML valide. – cletus

2

après jquery 1,7

$('document').on("click",'#step', function() { 
       console.log("Clicking step"); 
}); 
+0

btw les guillemets autour du document ne sont pas nécessaires. Néanmoins - bon travail pour mentionner .on() au lieu de la méthode obsolète .live(). – michaeltintiuc

Questions connexes