使用jquery的sortable插件实现拖动效果,以及影响blur事件触发的解决方法
来源:互联网 发布:win10网络发现已关闭 编辑:程序博客网 时间:2024/04/28 07:52
1.首先是实现拖动效果,代码如下
<!doctype html><html lang="en"><head> <meta charset="utf-8"> <title>jQuery UI Sortable - Default functionality</title> <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> <script src="//code.jquery.com/jquery-1.10.2.js"></script> <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script> <link rel="stylesheet" href="/resources/demos/style.css"> <style> #sortable { list-style-type: none; margin: 0; padding: 0; width: 60%; } #sortable li { margin: 0 3px 3px 3px; padding: 0.4em; padding-left: 1.5em; font-size: 1.4em; height: 18px; } #sortable li span { position: absolute; margin-left: -1.3em; } </style> <script> $(function() { $( "#sortable" ).sortable(); }); </script></head><body><ul id="sortable"> <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 1</li> <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 2</li> <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 3</li> <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 4</li> <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 5</li> <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 6</li> <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 7</li></ul></body></html>
注意,该插件必须,使用<ul>
和<li>
标签才能够实现,如果你需要的结构是<div>
那么没关系,只要把你的结构写在<li>
标签中就可以了。
2.sortable插件对blur事件的影响
好,那么问题来了,假设<li>
中我写的是如下代码
<div style="height:100px"><input type="text" class="description"/></div>
而且我针对input绑定了一个失去焦点的事件blur。
那么效果是这样的,当鼠标点击进入input后,input得到焦点,然后我们鼠标在空白处点击一下。
注意这里的空白处不是随便的空白处,这里的空白处是指的当前<li>
节点范围内的空白处,包括本例子中的子元素<div>
范围内。
此时我们预测的结果是我绑定的blur事件会被触发,但实际上你会看到结果,光标仍然在input中闪烁并没有失去焦点。
下面提供解决办法,直接看代码:
<script> $(window).load(function(){ $('#sortable').mousedown(function(){ document.activeElement.blur(); }); });</script>
同样对使用了sortable插件的<ul>
绑定上述事件即可开启被屏蔽掉的事件blur,至此该问题得到了有效的解决方案。
1 0
- 使用jquery的sortable插件实现拖动效果,以及影响blur事件触发的解决方法
- jquery-ui的sortable插件使用示例
- jquery ui sortable 实现table,row的拖动。(Make Table Rows Sortable Using jQuery UI Sortable)
- 使用jquery实现简单的拖动效果
- jquery sortable的拖动方法讲解
- jquery sortable的拖动方法示例详解
- jquery sortable的拖动方法示例详解
- java + jquery-ui.sortable.js插件实现表格拖动排序
- jquery UI的Sortable拖动之后的存储
- jquery sortable实现table拖拽排序,更新时只更新受影响的行
- jquery文本框的focus和blur事件
- 【jQuery】文本框的focus和blur事件
- 【JQuery】文本框的focus和blur事件
- 详说jQuery的focus()、blur()事件
- jquery的sortable
- blur,valid事件一次监听多次触发的性质
- 文本框的blur与change事件触发顺序
- 文本框的blur与change事件触发顺序
- 遇到在html中取值时,值为null的问题
- Linux下无法清空回收站
- 用户界面控件套包ComponentOne Studio Enterprise 2015 v3全新发布
- 纸上情,唯爱
- asp.net页面的提交方式POST和GET区别及用法?
- 使用jquery的sortable插件实现拖动效果,以及影响blur事件触发的解决方法
- 用Redis实现分布式锁 与 实现任务队列
- maven POM.xml 标签详解
- poj 3126.Prime Path(bfs)
- 产生短信验证码
- Folder文件夹的排布
- HierarchyViewer布局优化工具
- 用js 动态的更改类名为 ".correctControl" div 的 背景色
- git 删除远程分支