2010-01-20 2 views
1

J'ai le même code pour les événements keyup et keydown, est-il possible que je puisse passer l'élément à la fonction afin que je puisse l'appeler comme element.addEvent('keyup',function(event,element)); sur les deux au lieu d'avoir une fonction inline?Mootools questions question

Répondre

2

Vous pouvez utiliser event.target pour obtenir l'élément je crois

window.addEvent('domready', function(){ 
    $('yourInputField').addEvents({ 
     'keyup': alertValue, 
     'keydown': alertValue 
    }); 
}); 

function alertValue(event){ 
    alert(event.target.value); 
} 
+0

Merci, qui a aidé beaucoup. – BiscottiGummyBears

1

A l'intérieur du rappel d'événement, this fait référence à l'élément qui a déclenché l'événement. Vous pouvez donc écrire soit:

function valueChangeHandler() { 
    console.log(this.value); 
} 

ou au lieu, utiliser la propriété target de l'objet événement. Les deux fonctionnent de la même manière.

function valueChangeHandler(event) { 
    console.log(event.target.value); 
} 

Fixez la fonction de rappel à l'aide soit addEvent ou addEvents:

$("someInputId").addEvents({ 
    "keyup": valueChangeHandler, 
    "keydown": valueChangeHandler 
});