Падение событие не срабатывает в chrome



Кажется, что событие drop не запускается, когда я ожидал бы.



Я предполагаю, что событие drop срабатывает, когда элемент, который перетаскивается, освобождается выше целевого элемента, но это не похоже на случай.



что я недопонимаю?



http://jsfiddle.net/LntTL/



$('.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');
})
612   3  

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

    Ничего не найдено.