J'ai ce code de prototype pour détecter Entrez en appuyant sur dans textarea.événement KeyDown est invoqué deux fois
document.observe('keydown', function(e, el) {
if ((e.keyCode == 13) && (el = e.findElement('.chattext'))) {
e.stop();
// foo bar
}
}
Et html
<textarea id="chattext_17" class="chattext" cols="20" rows="3"></textarea>
Mais le problème est, cet événement obtient deux fois invoqué. J'ai même essayé de le réécrire à jQuery
$('.chattext').live('keydown', function(e) {
if (e.keyCode == 13) {
e.preventDefault();
// foo bar
}
});
Mais même alors, l'événement est invoqué deux fois.
Lorsque je tente de le déboguer avec Firebug, il saute toujours ici après avoir terminé le gestionnaire d'événements
function createWrapper(element, eventName, handler) {
var id = getEventID(element);
var c = getWrappersForEventName(id, eventName);
if (c.pluck("handler").include(handler)) return false;
var wrapper = function(event) {
if (!Event || !Event.extend || // always false here
(event.eventName && event.eventName != eventName))
return false;
Event.extend(event);
handler.call(element, event); // here the event gets called again
};
wrapper.handler = handler;
c.push(wrapper);
return wrapper;
}
Je ne suis pas gourou du prototype, donc je ne sais pas où le problème pourrait être.
Pourquoi l'événement keydown est-il invoqué deux fois?
wow lol, j'ai découvert que j'avais le fichier js lié deux fois ... de toute façon :) thx –