2009-08-19 7 views
0

J'ai un lien ajouté à un élément div. Et en cliquant sur le lien, je veux qu'une fonction soit exécutée. Afin de vérifier si la fonction est appelée, quand j'ai cliqué sur le lien, j'ai eu une boîte d'alerte dans cette fonction. Mais aucune boîte d'alerte n'apparaît si je clique sur le lien?Problème avec la fonction de clic dans JQuery

Ceci est le lien ajouté à l'élément div 'fb _ contentarea _ col2top'.

$("<p class='title2'>Recent Entries | <a id='actions' href='#'>Actions</a> </p>").appendTo("#fb_contentarea_col2top"); 

Lorsque je clique sur ce lien, je veux que cette fonction soit appelée,

$('#actions').click(function(){ 
    alert("HI"); 

}); 

Mais l'alerte ne vient pas. Quelle est l'erreur que je fais?

Répondre

5

Vous voulez changer « clic » pour vivre:

$("#actions").live("click", function() { 
    alert("hi"); 
}); 

Cela lie les actions à tout #actions qui existe actuellement, ou existera dans l'avenir. Dans votre cas, vous l'ajoutez plus tard.

+2

... ou lier l'événement click après avoir créé l'élément. – Kieron

0

Avez-vous le script dans un bloc de document prêt. Sinon, utilisez .live en dehors du bloc prêt.

$(function(){ 

    $('#actions').click(function(){ 
     alert("HI"); 

    }); 

}); 
0

Essayez ceci:

$("#actions").bind('click', function() { 
    alert("HI"); 
}); 
+0

quelle est la différence avec ce qu'elle a déjà? – redsquare

+0

.live ('click') fonctionne comme Jonathan l'a suggéré .. – Angeline

+0

.bind et .live sont légèrement différents: live lie à tous les futurs matchs (ce qui ne devrait pas poser de problème, puisque id doit être unique). Je suis juste plus habitué à utiliser .bind, c'est pourquoi je l'ai suggéré. –

Questions connexes