【问题标题】:name of event when mouse is pressed without releasing?按下鼠标而不释放时的事件名称?
【发布时间】:2013-07-05 18:59:52
【问题描述】:

我想知道鼠标按住不放时的事件名称。我知道mousedown,mouseclick。

我想对这两个事件执行不同的 - 不同的操作。鼠标单击时的一个操作和鼠标按下而不释放时的另一个操作。

【问题讨论】:

  • 为什么不使用mousedown?如果您只是在寻找样式,还有 CSS 伪类 ':active'。或者请详细说明您要查找的内容...
  • 几乎相同的问题:stackoverflow.com/questions/7163642/… 虽然这不是一个事件...
  • 我想在这两个事件中执行一些操作,而 mousedown 不是解决方案。我想在鼠标按下而不释放时进行操作
  • Mousedown 不能解决什么问题?我们仍然不知道您在寻找什么???

标签: jquery events


【解决方案1】:

听起来你仍然在寻找.mousedown()

http://api.jquery.com/mousedown/

澄清一下:如果你想让一些代码重复执行直到鼠标被释放(我不能完全确定这是否真的是你想要的),你可以使用这样的东西:

var interval = -1;

function doThing(){
    console.log("this will execute 10 times per second while the mouse is held down");
}

$('#element').mousedown(function(){
    if(interval !== -1)
        clearInterval(interval);
    interval = setInterval(doThing, 100);
});

$('#element').mouseup(function(){
    if(interval !== -1)
        clearInterval(interval);
});

【讨论】:

  • 如他所说:I know about mousedown, mouseclick.
  • 我明白了。听起来他仍然要求的是 mousedown()。 “按下而不释放”是鼠标按下事件。
  • 从未使用过“长按”这个短语。那会很有帮助。
【解决方案2】:

我猜你正在寻找MouseHold event

这是一个light weight plugin

在这里,您可以使用打开的source code 来完成工作。

【讨论】:

  • 我将如何使用这个鼠标。
  • 将代码复制到你的js文件中并添加鼠标按下事件。
  • 我复制了它,但它也适用于鼠标点击,而我在鼠标点击时不需要它,而是长时间点击鼠标。谢谢
【解决方案3】:

如果您需要在按住元素一段时间后触发事件,您可以使用 .mousedown 事件,然后使用 setTimeout 延迟运行函数。您应该将清除计时器功能绑定到 mouseup 事件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-20
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    • 1970-01-01
    • 2019-11-30
    • 1970-01-01
    相关资源
    最近更新 更多