jQuery mouseup在拖离链接后未启动
jQuery mouseup not firing after drag off link
查看此jsfiddle:
http://jsfiddle.net/CB87X/6/
单击并按住该按钮,拖动该按钮并释放。如您所见,如果释放鼠标按钮时鼠标未在元素上,则mouseup事件永远不会触发。因此,我的示例中的样式从未更改回原来的样式。如果鼠标按钮未在单击的元素上时释放,如何激发mouseup事件?
Edit1:BTW我在这个网站上看了几个解决方案,实现了它们,但mouseup事件仍然没有启动。
mouseup
事件与指针所在的位置有关,这是预期的行为。如果希望按钮的样式正确,请同时绑定mouseleave
事件。
这样就可以了。如果左键单击按钮(.but)并拖动,则可以在页面上的任何位置mouseup
,并且仍然触发单击事件。如果mouseleave
页面"正文"和mouseup
,则bind
ed mouseleave
事件为unbind
ed
$('.but').mousedown( function(e) {
if (e.which == 1) {
var $this = $(this);
$this.bind('mouseleave', function(){
$('body').one('mouseup', function() {
$this.click();
});
});
$this.mouseup(function() {
$(this).unbind('mouseleave');
});
}
});
分叉您的示例以提供一个工作示例:
http://jsfiddle.net/67Rrs/2/
一旦按钮被mousedown
ed,一个事件就会绑定到下一个mouseup
,无论它发生在哪里,都会重置样式。
只需使用$(document).on('museup-dragend',somefunc);
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 如何使用jQuery自动打开页面上的所有链接
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- jquery动画可以通过编程链接吗
- 在单击href链接的同时下载文件
- jQuery mouseup在拖离链接后未启动
- 超链接单击未启动
- 为什么首先单击文档空白处的任何位置启动代码,而不是单击超链接,以及为什么打开了太多选项卡
- 如何在单击链接时启动函数,然后从该链接传递类
- 单击链接时的 Javascript 操作顺序 - 链接启动或附加到 id 的侦听器触发
- 在单击时启动 asp 会话(单击链接时)
- sharepoint中快速启动导航中的子链接
- 只有当用户单击链接/按钮时,启动响应才会滑动
- 用Ajax生成的链接启动JQuery对话框
- 为什么在多次启动$.click()时,如果链接被单击一次,它会捕获它不止一次
- MVC4,启动25<a>代码中的链接
- 是/否,然后启动链接
- 启动.滚动链接菜单并修复页面顶部的导航栏
- 如何在mac上从网页中的链接启动应用程序
- 使用jQuery点击异步添加的链接启动steam