jQuery dragenter event is fired on every child

dragenter, jquery

Solution

You can test whether the element that triggered the event is the container:

var container = $('#container').get(0);

$(document).on('dragenter', '#container', function(event) {
  if(event.target === container) {
      console.log('dragenter');
  }
});

Or if you don't have to use event delegation:

$('#container').on('dragenter', function(event) {
    if(event.target === this) {
        console.log('dragenter');
    }  
});

Problem

I have bound `dragenter` event on an object that contains some children. ``` $(document).on('dragenter', '#container', function(e) { console.log('dragenter'); }); ``` When I move with dragged file around them, this event is firing repeatedly. What I have expected is firing `dragenter` only when entering `#container` element, not every child too. Is it proper behavior? How can I prevent it?

Original source

Related problems