看起来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');
})
发布于 2014-01-25 03:36:06
为了在ondragover
元素上发生drop事件,必须取消drop和drop事件。使用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();
})
有关更多信息,请查看the MDN page。
发布于 2016-02-16 17:32:13
您只需在dragover
事件上执行一个event.preventDefault()
即可。这样做将触发drop
事件。
发布于 2016-03-25 02:35:52
为了触发drop事件,您需要在over事件期间分配一个dropEffect,否则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.
https://stackoverflow.com/questions/21339924
复制相似问题