为什么不加这个就没效果?

为什么不加这个就没效果?

.on('dragover',function(e){

e.preventDefault()

})

加了这个container才能append成功。其他的dragenter、dragleave即便不存在也可以实现效果。

(function(){
var dragSrc
$('.box').each(function(i,ele){
$(ele).on('dragstart',function(e){
dragSrc=$(this)
})
})
$('#container').on('dragenter',function(e){
e.preventDefault()
$(this).addClass('containerDrop')
}).on('dragover',function(e){
e.preventDefault()
}).on('drop',function(e){
e.preventDefault()
$(this).append(dragSrc.find('.line').clone())
$(this).removeClass('containerDrop')
}).on('dragleave',function(e){
e.preventDefault()
// $(this).removeClass('containerDrop')
})
})(jQuery)


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

ondragover 事件在可拖动元素或选取的文本正在拖动到放置目标时触发。

默认情况下,数据/元素不能放置到其他元素中。 如果要实现改功能,我们需要防止元素的默认处理方法。我们可以通过调用 event.preventDefault() 方法来实现 ondragover 事件。


好帮手慕星星 2018-07-09 11:10:37

$('#container').on()是给一个对象区域绑定拖拽的事件,这个对象区域是一定要存在的,并且拖拽的元素一定要在这个对象区域之内,所以$('#container')是不可以缺少的。

dragEnter:拖放进入,也就是鼠标拖放对象进入拖放区域。
dragLeave:离开拖放区域。

如果不在这两个过程中设置一些样式,执行一些事件,缺少这两个事件也是可以的。
自己可以测试下,祝学习愉快~~

  • 提问者 慕神7088389 #1
    我问的是dragover不加就没效果是为什么
    2018-07-09 15:29:28
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师