javascript - 拖动时的 mouseUp 事件

标签 javascript jquery

我有一个链接,它有 mousedown 和 mouseup 处理程序来为页面上的一些对象设置动画。 拖动(拖放)链接时会触发 mousedown 事件,但在释放时不会触发 mouseup 事件。这个问题有解决方法吗?

这里有一个例子,如果你点击链接正常,但是当你拖动链接鼠标向上时不会发生:

http://jsfiddle.net/hL3mg/1/

最佳答案

处理拖拽

这里没有人提到的关键是,实际上一个事件来注册拖动的结束,正如其他答案所解释的那样,这就是这里发生的事情。该事件称为 dragend,因此您可以简单地执行

$("a").on("dragend",function(){
    console.log("Drag End");
});

注册拖动的结束。这样做的缺点是您仍然会看到拖动界面(换句话说:浏览器将显示一些 UI 以通知用户他正在拖动)。

注册鼠标松开

2020 年的注意事项:这不是一个好的答案,但我对 jQuery 不再熟悉,因此无法很好地更新它。我猜 dragstart 上的 event.preventDefault() 可能相关也可能不相关。

但是也有一种方法可以注册鼠标抬起,只需在 click 中通过 returning false 取消拖动行为事件监听器,然后在 document 上注册 mouseup

$("a").mousedown(function(){
    console.log("Mouse Down");
    return false;
});

$(document).mouseup(function(){
    console.log("Mouse Up");
});

我觉得我必须做的唯一评论是,在独立的 jsfiddle 中,它工作得很好,在我自己的代码中它没有,所以我正在听 mouseupdragend 只是为了确定。

关于javascript - 拖动时的 mouseUp 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6019190/

相关文章:

javascript - Bootstrap 3.0 删除下拉菜单中的双击

javascript - 如何使用 javascript 或 jquery 验证单个文本字段中的多个电子邮件地址

jquery - 单击父级时选择 radio

javascript - Jquery 在行路径中水平水平制作六个图像的动画

javascript - 我的 ajax 调用在函数 myalert() 中不起作用

更改 HTML 的 JavaScript 函数不起作用

javascript - 如何获取先前创建的 Google Chart 的实例?

javascript - WheelNav 不适用于 CodePen,但在代码片段中

jQuery slider - 第二次单击在宽度动画之前将显示更改为无

javascript - onsubmit ="return false"对 Internet Explorer 7/8 没有影响(仍然提交表单)