2010-01-22 8 views
1

Je charge dynamiquement des données par AJAX dans un bloc (http://plugins.learningjquery.com/cluetip/#).jQuery bascule();

Je veux basculer les résultats d'un lien comme ceci:

$(document).ready(function() { 
    $("#calendarLink").live("click",(function() { 
     $("#result").toggle(); 
    })); 
}); 

Pour une raison quelconque au-dessus du ne fonctionnera pas. Pouvez-vous suggérer une alternative?

Répondre

1

Couple de questions/points

Avez-vous vraiment besoin d'utiliser .live() Vous utilisez un sélecteur d'identité, donc il ne devrait jamais être l'un de ceux-ci.

De plus, vous disposez d'un jeu de freins supplémentaire. Probablement pas un problème, mais vous pouvez les supprimer:

$(document).ready(function() { 
    $("#calendarLink").click(function() { 
     $("#result").toggle(); 
    }); 
}); 
+0

Toggle ne fonctionne pas très étrange. – factoringcompare

+0

Supposons que je n'ai pas besoin de la fonction .live mais de toute façon cela ne fonctionne pas – factoringcompare

+0

Pouvez-vous poster votre code HTML, et ajouter un commentaire ci-dessous quand vous l'avez fait pour qu'il apparaisse pour moi. –

0

Peut-être que la fonction toggle() n'est pas utilisée correctement?

Voir ici http://api.jquery.com/toggle/

Je ne sais pas si cela est une nouvelle fonctionnalité que pour jQuery 1.4, mais il semble que la fonction bascule nécessite des paramètres.

+0

Non, Toggle devrait être OK –

0

Le code suivant est correct (démo en ligne - http://jsbin.com/ehate/edit):

$("#calendarLink").live("click", function(e){ 
    $("#result").toggle(); 
}); 

Vous utilisez $.live() que si #calendarLink seront ajoutés dynamiquement plus tard. Dans le cas contraire, utilisez un clic normal:

$("#calendarLink").click(function(e){ 
    $("#result").toggle(); 
}); 

Si cela ne fonctionne pas pour vous, assurez-vous de vérifier vos #calendarLink et #result éléments dans votre code HTML. Assurez-vous que les valeurs d'ID sont correctes. Principalement, assurez-vous que votre boîtier est correct.

+0

Le '#result' ne devrait-il pas être changé en '.result'? J'ai ajouté une réponse –

0

Deux éléments de la même page ne peuvent pas avoir le même ID.

u utilisé

$("#result").toggle(); 

« Je veux basculer les résultats d'un lien ... »

Ainsi, les éléments de résultat devraient avoir la même classe, pas id.

Le code doit être:

$(".result").toggle(); 

'#' changé en '' Essayé le code mais obtenir le même résultat.