当前第2页 返回上一页
解决方案是为容器绑定dragover事件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | <ul class= "canDrog" >
<li draggable= "true" id= "1" >优</li>
<li draggable= "true" id= "2" >良</li>
<li draggable= "true" id= "3" >中</li>
<li draggable= "true" id= "4" >差</li>
</ul>
<table class= "dataTbl" >
<thead>
<tr>
<th style= "width: 10%" >节次/星期</th>
<th>周一</th>
<th>周二</th>
<th>周三</th>
<th>周四</th>
<th>周五</th>
</tr>
</thead>
<tbody>
<tr>
<td>第一节</td>
<td draggable= "true" ></td>
<td draggable= "true" ></td>
<td draggable= "true" ></td>
<td draggable= "true" ></td>
<td draggable= "true" ></td>
</tr>
<!--此处省略-->
</tbody>
</table>
<script>
$( '.canDrog > li' ).bind( 'dragstart' , function (event){
event.dataTransfer.setData( "Text" , '1' );
});
$( ".dataTbl" ).bind( "dragover" , 'td' , function (e){
e.originalEvent.preventDefault();
})
</script>
|
4. 解决放置时firefox打开新选项卡问题
使用firefox的时候如果释放了被拖拽的元素,默认浏览器将会打开一个新的选项卡,如下

这是由于drop回调函数之后浏览器执行了默认行为,通常的解决方案在拖拽容器的drop钩子中添加阻止默认事件执行以及阻止冒泡的代码。
1 2 3 4 5 6 7 8 | <script>
$( '.dataTbl' ).bind( 'drop' , 'td' , function (event){
console.log( '+++drop' );
event.preventDefault();
event.stopPropagation();
});
</script>
|
但是如果将draggable元素拖到其他地方,依然会导致打开新选项卡问题的出现,这时可以为所有容器添加如上代码。

5. 编写一个完整小例子

源码: https://github.com/pluslicy/drag
随后将对vuedraggable插件库进行学习,应用在vue框架中
相关推荐:
H5怎么做出拖拽效果
Bootstrap Modal添加拖拽的方法实例
JS实现的简单拖拽购物车功能
以上就是Html5原生拖拽操作实例讲解的详细内容,更多文章请关注木庄网络博客!
返回前面的内容
相关阅读 >>
htm5新增的表单元素keygen标签的用法和属性介绍
HTML5中的dom编程的实现步骤
关于HTML5 input placeholder 的颜色修改
h5 语义化标签介绍
浅谈HTML5的未来发展
HTML5地理定位与第三方工具百度地图的应用
HTML5 dialog是什么?怎么使用HTML5中的dialog来实现模拟弹窗?
h5中在拖动的元素或选择的文本进入到有效的放置目标时触发的事件ondragenter
HTML5 video 上传预览图片视频,设置、预览视频某秒的海报帧
HTML5的地理定位如何使用
更多相关阅读请进入《HTML5》频道 >>
人民邮电出版社
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者
转载请注明出处:木庄网络博客 » Html5原生拖拽操作实例讲解