var MyObject = {
init: function() {
this.items = $('#menu a');
for (var i = 0; i < this.items.length; i++) {
$(this.items[i]).bind('click', this.doSomething);
}
},
doSomething: function (index) {
alert(this.items[index].innerHTML);
// alerts: One, Two, Three
}
};
J'ai besoin passer l'index (i)Comment passer des arguments à un gestionnaire d'événement?
Edit: Illustration: http://jsfiddle.net/mUjAj/
oui, mais j'ai besoin de "ceci" sera MyObject, pas l'élément "a" qui déclenche l'événement. – Luistar15
@ Luistar15 - Ce n'est pas le cas dans un gestionnaire d'événements, 'this' fait référence à l'élément, si vous voulez qu'il se réfère à l'élément, il vaut mieux créer une variable comme' self' que vous référez, ou changer le contexte du gestionnaire ... mais il n'y a qu'une copie de votre variable de toute façon, vous pouvez juste faire 'MyObject' pour y faire référence, à moins que je ne manque quelque chose? –
Je comprends, oui, il n'y a qu'une seule copie. Donc, je ne peux pas faire quelque chose comme ça (http://jsfiddle.net/mUjAj/2/)? La version de jquery serait (http://jsfiddle.net/mUjAj/3/). Alors, est-il certain que je ne peux pas utiliser "this" pour faire référence à "MyObject"? Ou y a-t-il un moyen? – Luistar15