2017-02-22 12 views
0

любезно Я новичок с событиями JavaScript и я встретил ниже код, когда я работалкак я могу удалить eventlistner с этой функцией

я знал, что я должен иметь одну функцию, когда добавить и удалить прослушиватель событий, так глядя в мой код:

document.getElementById("formId").addEventListener("submit", function(event) { 
       event = event || window.event; 
       if (event.preventDefault) { 
        event.preventDefault(); 
       } else { 
        event.returnValue = false; 
       } 
      }); 

Как я могу удалить этот слушатель событий?

Это сделано событием отправки, поэтому, когда я хочу удалить этот прослушиватель событий, как я могу захватить это событие, чтобы использовать его снова, чтобы удалить прослушиватель событий с помощью вышеуказанной функции?

ответ

1

Вы можете удалить слушатель события следующим образом: document.getElementById("formId").removeEventListener('submit', handleSubmit);

Полный пример кода:

function handleSubmit(event) { 
    event = event || window.event; 
    if (event.preventDefault) { 
     event.preventDefault(); 
    } else { 
     event.returnValue = false; 
    } 
} 
document.getElementById("formId").addEventListener("submit", handleSubmit); 

document.getElementById("formId").removeEventListener("submit", handleSubmit); 

Других вариантов в документации: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener

+0

@Steven была опечатка в имени функции ' handleSubmit'. Я предполагаю, что вы просто скопировали код, и именно по этой причине это не сработало. –

+1

@Devidas: я заметил это, и он отлично работает, большое спасибо, но у меня есть вопрос, как это событие доступно в случае вызова removeEventListner? –

+0

@Steven Я не уверен, что понимаю ваш вопрос –