У меня есть следующий код:addEventListener не добавляет слушателя к элементу
document.onreadystatechange = function() {
if (document.readyState == "interactive") {
var dropZone = document.getElementById("dropZone");
dropZone.addEventListener("dragover", handleDragOver);
dropZone.addEventListener("drop", handleDrop);
console.log(dropZone);
}
};
Проблема заключается в том, что addEventListener не добавляет слушателя к объекту Dropzone. Поэтому, когда я проверяю объект dropZone в консольном журнале, свойства ondragover и ondrop пусты.
Я попытался использовать readyState «complete» вместо «interactive», но он тоже не работает. Когда я пытаюсь добавить этих слушателей к элементу body, он отлично работает (слушатели добавлены и все функции обработки работают).
Я не могу понять, в чем проблема. Поэтому, пожалуйста, дайте мне совет, в каком направлении я должен смотреть.
Каково ваше handleDragOver и функция handleDrop предотвращающий по умолчанию? – baao
Как вы можете проверить свойства? 'dropZone.ondragover', скорее всего, по-прежнему« null », но в Firefox, например, рядом с элементами в представлении инспектора страницы есть маленькие« ev ». Они указывают, какие прослушиватели событий имеют элемент. Для exmaple на StackOverlow 'document.body' есть два события« mousedown »и три события' click', хотя 'document.body.onclick' и' document.body.onmousedown' являются 'null'. – Xufox
[Попробуйте это] (https://developer.mozilla.org/en-US/docs/Tools/Page_Inspector/How_to/Examine_event_listeners). – Xufox