在JS中删除事件没有触发/触发

时间:2016-05-23 22:42:43

标签: javascript drag-and-drop event-handling

示例:https://jsfiddle.net/u3m4eazx/

我有2个可拖动的图像和3个可以放下图像的div($ dropZones)。

$dropZones.forEach($z => {
  $z.addEventListener('dragover', onDragOver);
  $z.addEventListener('dragleave', onDragLeave);
  $z.addEventListener('drop', onDrop);
});

dragover和dragleave事件触发并完美地工作。我通过添加一个css类对div进行悬停效果。

const onDragOver = e => {
  e.preventDefault;
  let id = e.target.dataset.id;
  let dropzone = document.querySelector(`.dropzone[data-id="${id}"]`);
  dropzone.classList.add('ready');
};

在dragleave事件中,我只是删除了这个类。所以他们运作良好。
但是下降事件并没有发生。这就是我在drop事件中的作用

const onDrop = e => {
  console.log("Drop triggered");
  alert('Drop triggered');
};

任何人都知道为什么事件不会触发?

1 个答案:

答案 0 :(得分:2)

是的所以我回头看了一下,发现preventDefault()函数写错了。我是在没有()的情况下写的。
不管怎样,谢谢。