Je n'en connais pas, et une recherche sur Google n'a pas donné de résultats évidents. Une solution simple, kludgy est de créer une fonction qui cycles à travers chaque événement et met à null
, tels que
function removeEvents(obj)
{
obj.onblur = null;
obj.onchange = null;
obj.onclick = null;
// ...
}
appeler cette fonction comme suit: removeEvents(myElem)
. Une liste complète des gestionnaires d'événements JavaScript peut être trouvée au http://www.elated.com/articles/events-and-event-handlers/.
Sans aucun doute, il existe une façon plus élégante d'écrire cette fonction, mais je ne sais pas s'il existe une façon plus élégante de résoudre ce problème. Ce serait adorable si quelqu'un en connaissait un. Si vous liez des événements via une bibliothèque JavaScript, telle que jQuery, il peut y avoir d'autres options, meilleures.
Comment les événements sont-ils liés en premier lieu (par exemple 'onclick = ...', 'addEventListener', bibliothèque, etc.)? –
addEventListener() est utilisé. Il est utilisé pour myElem et pour certains enfants arbitraires en fonction de la logique conditionnelle déclenchée par l'utilisateur. – Tower
Je suppose que vous ne vous souciez pas de IE alors (qui utilise 'attachEvent')? Si c'est le cas, "copiez" votre élément avec 'cloneNode (true)' et magic-boom-presto, les événements addEventListener ne seront pas copiés. C'est dans la spécification: http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-EventListener –