【问题标题】:How to call mouseup event after calling preventDefault on mouseMove event? [duplicate]在 mouseMove 事件上调用 preventDefault 后如何调用 mouseup 事件? [复制]
【发布时间】:2013-07-04 19:06:10
【问题描述】:

我正在制作一个移动网站,我需要禁用原生 iphone 溢出滚动。为此,我在 touchmove 函数上调用了 preventDefault,但问题是,一旦用户调用 mouseup 事件,我还需要获取鼠标释放的位置。即使在 touchmove 事件上调用了 preventDefault 之后,如何调用 mouseup 事件?

我现在的代码如下:

document.ontouchmove = function(e){
e.preventDefault();
} 

$(document).mousedown(function(e){
clickPosition = e.pageX;
});

$(document).mouseup(function(e){
releasePosition = e.pageX;
var positionDifference = clickPosition - releasePosition;
});

【问题讨论】:

  • 如果我理解正确,不是重复的,他想杀死 touchmove 的默认行为并提供自己的实现来捕获开始\结束。

标签: jquery mobile scroll


【解决方案1】:

像这样:

http://jsfiddle.net/KyleMuir/KGXb6/

使用 .trigger() 将参数传递给其他函数 (http://api.jquery.com/trigger/)

但是,对于捕获开头\结尾的示例,您可能希望执行以下操作:http://jsfiddle.net/KyleMuir/KGXb6/3/

在此示例中,我在事件范围之外为单击位置创建了一个变量,该变量在 mousedown 时不断被覆盖,然后在 mouse up 时引用,比使用触发器更简洁。

如果需要在鼠标按下后做一些事情,那么你可以使用触发器来调用一些函数。

希望这会有所帮助:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多