J'ai un problème avec JQuery 1.9.1. Je l'ai cherché mais cela n'a pas résolu mon problème.
$('.sm2_expander').live('click', function() {
$(this).parent().parent().toggleClass('sm2_liOpen').toggleClass('sm2_liClosed');
return false;
});
Tout le monde a dit que "use 'on' function" mais cette fois, mon code ne fonctionne jamais.
$(document).on("click", "a.offsite", function(){ alert("Goodbye!"); });
Edit: Voici ma page d’utilisation: lien déplaçable
Dans votre exemple, vous avez utilisé le sélecteur a.offsite
, mais aucun élément ne correspond à ce sélecteur dans votre page. Cela pourrait être la raison pour laquelle cela ne fonctionne pas.
$(function(){
$(document).on('click', '.sm2_expander', function(){
alert('bye');
$(this).parent().parent().toggleClass('sm2_liOpen').toggleClass('sm2_liClosed');
})
})
Je pense que vous pouvez raccourcir ceci à
$(function(){
$(document).on('click', '.sm2_expander', function(){
$(this).closest('li').toggleClass('sm2_liOpen sm2_liClosed');
})
})
.live () a été introduit dans jQuery 1.3, il ne fonctionnera donc pas avec les versions précédentes.
.live () est également déconseillé depuis jQuery 1.7.
Les alternatives sont .on () et .delegate ()
Voir question connexe. JQuery 1.9 .live () n’est pas une fonction de la migration du code existant.
J'ai utilisé "jquery-1.8.3.min.js" et mon problème a été résolu.
Essayez ceci: -http://jsfiddle.net/trdb9/
JS: -
$(document).on("click", "a.offsite", function () {
alert("Goodbye!");
});
HTML: -
<a class="offsite">Click Me</a>
Vous devez utiliser jquery-migrate-1.1.1.min.js
ou supérieur. Je suppose qu’il y a de grands changements à venir dans jquery
, le premier étant de faire en sorte que tous ceux qui ont utilisé .live
trouvent de nouvelles façons de faire.
Quoi qu'il en soit, essayez cela et cela devrait fonctionner.
Essayez de remplacer live
par on
dans votre code.
$('.sm2_expander').on('click', function() {
$(this).parent().parent().toggleClass('sm2_liOpen').toggleClass('sm2_liClosed');
return false;
});
Si vous avez un site actif, je vous recommanderai d'utiliser jQuery Migrate
https://github.com/jquery/jquery-migrate/
Il ajoutera automatiquement les fonctions obsolètes mais nécessaires.