11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

encore une nième question sur jQuery...

alors voila, j'ai beaucoup d'éléments sur ma page, que je souhaite rendre éditable lors d'un double clic. J'attache donc un évènement à ces éléments:

$('.cell').dblclick(function(){
    //whatever
});



Lorsque un élément de la classe cll est éditable, je veux que les autres ne le soit plus.
donc:

$('.cell').dblclick(function(){
    $('.cell').off('dblclick');
    //whatever
});


Le traitement à l'intérieur de cet event handler continue. Lorsque l'utilisateur tape "entrée" je souhaite relancer l'event dblclick sur les éléments '.cell' et rappeler la fonction ci-dessus. Hors je n'y arrive pas:


$('.cell').dblclick(function(){
    editable($this)
});



j'ai une fonction:


function editable(objet)
{
    //blablabla
}



Mais cela ne fonctionne pas...

deux questions donc:
- est-ce la bonne manière de faire ?
- est-il possible de passer l'objet $this à une fonction externe ?
- help Smiley cligne

merci d'avance !
Bonjour Eagle1

Ne pouvez vous pas faire une modification de la classe '.cell' qui deviendrai '.pouette' par exemple, une fois que l'utilisateur a fait ça saisie, vous faites une recherche sur '.pouette' pour les repasser en '.cell'. Enfin ce n'est qu'une idée.

Pour faire passer votre $(this) dans une fonction externe, il vous faut déclarer une variable hors de la fonction ce qui la rendra global et utilisable n'importe ou dans le script.


$(document).ready( function(){
    var mickey; // variable global
    $('.cell').dblclick(function(){
        mickey = $(this); // enregistrment de $(this) dans la variable mickey
    });
});


J'espère que ça t'aidera un petit peu