Падение событие не срабатывает в chrome
Кажется, что событие drop не запускается, когда я ожидал бы.
Я предполагаю, что событие drop срабатывает, когда элемент, который перетаскивается, освобождается выше целевого элемента, но это не похоже на случай.
что я недопонимаю?
$('.drop').on('drop dragdrop',function(){
alert('dropped');
});
$('.drop').on('dragenter',function(){
$(this).html('drop now').css('background','blue');
})
$('.drop').on('dragleave',function(){
$(this).html('drop here').css('background','red');
})
3 ответов:
чтобы событие drop произошло на элементе div, вы должны отменить
ondragenterиondragoverсобытий. Использование jquery и вашего кода...$('.drop').on('drop dragdrop',function(){ alert('dropped'); }); $('.drop').on('dragenter',function(event){ event.preventDefault(); $(this).html('drop now').css('background','blue'); }) $('.drop').on('dragleave',function(){ $(this).html('drop here').css('background','red'); }) $('.drop').on('dragover',function(event){ event.preventDefault(); })для получения дополнительной информации, проверить страница MDN.
вы можете уйти с просто делаю
event.preventDefault()наdragoverсобытие. Делать это будет стрелятьdropсобытие.
для того, чтобы событие drop сработало, вам нужно назначить dropEffect во время события over, иначе событие ondrop никогда не будет вызвано:
$('.drop').on('dragover',function(event){ event.preventDefault(); event.dataTransfer.dropEffect = 'copy'; // required to enable drop on DIV }) // Value for dropEffect can be one of: move, copy, link or none // The mouse icon + behavior will change accordingly.
Comments