11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je viens de voir que les nouvelles versions de Jquery ne supportait pas la fonction live(). Or, évidemment, j'utilise cette fonction ^^. A priori, il faut la remplacer par on() mais ça ne fonctionne pas dans mon cas.

Voici la version originale qui fonctionne :

$('.quizz_question_open').live('click', function() {
    alert('ok');
    return false;
});


Et celle que j'ai testé, mais qui ne fonctionne pas :

$('body').on('click', '.quizz_question_open', function() {
    alert('ok');
    return false;
});



Auriez-vous une idée ?
Merci d'avance Smiley smile
Ouais, `document` est l'élément qui était utilisé par `.live()`.

Cela dit, ton code actuel fonctionne: http://jsbin.com/opefut/2/edit

C'est donc quelque chose d'autre au sein de ton code qui bloque. Soit sur de toujours réduire tes bugs au minimum afin de trouver des indices sur la provenance de ton bug. Présentement, on voit que ce n'est pas cette ligne en elle même.
Merdci beaucoup de vos réponses Smiley smile

Effectivement, ça fonctionne sur ton exemple ... en fait dans la pratique, l'élément "cliquable" est créé par jQuery lui même, peut-être que le soucis viens de là. J'ai un peu trop simplifié mon exemple donc Smiley confused

Si quelqu'un à une autre idée ... Smiley smile
http://jsbin.com/opefut/3/edit <== [Dynamique] méthode pour lien injecté après le chargement de la DOM

http://jsbin.com/opefut/4/edit <== [Statique] méthode pour lien déjà existant dans la DOM au chargement

J'ai juste dévier un tout petit peu par rapport à ton code initial.

J'ai pris en compte que chaque éléments .quizz_question_open était contenu dans un ensemble portant l'ID #question (ce qui améliore considérablement les performances du script)
Modifié par Super_baloo8 (02 Mar 2013 - 13:20)