jQuery滚动框取消鼠标上的间隔

时间:2009-09-23 08:40:14

标签: jquery scroll onmouseup

很抱歉,我没有例子。

但是我正在创建一个滚动框(向左和向右滚动)我将mouseDown函数绑定到2个图像(这些用于滚动框)。这些函数是“scrollLeft()”和“scrollRight()”。

这些功能按计划工作(向左和向右移动框)。但是我的mouseUp事件有问题。当我将鼠标放在图像和鼠标上时,滚动事件被取消,这意味着滚动停止。

但是,如果我将鼠标移离图像并使用鼠标按钮,则滚动条会继续执行此功能。

我正在使用jquery并尝试过各种各样的事情,包括

$("*").mouseup(function(){
    console.log("ouseup");
    clearInterval(interval);
});

这也不起作用。我希望在触发mouseup时终止“间隔”间隔。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

听起来您可能最好使用mouseout()事件。将它绑定到您的图像上,以便在鼠标离开时它会闪光。

编辑: 好的,您希望确保只要您的鼠标离开这些图像,那么您的mouseup事件就会触发。所以你想利用triggerHandler()函数。

$('#myImage').mouseout(function(){
  $('#myImage').triggerHandler('mouseup');
});

或者(如已经建议的那样),将mouseup事件绑定到整个正文也可以是一个选项:

$('body').mouseup(function(){
  ClearInterval();
});

在放开按钮之前将鼠标从图像移开时,鼠标事件未触发的原因是鼠标按钮正在触发另一个元素的“向上”事件。请记住,鼠标事件是针对当时鼠标碰巧定位的元素触发的。所以当然,如果你在一个地方按下鼠标按钮,然后将它从预期鼠标事件的区域移开,该区域永远不会意识到你再次抬起了鼠标按钮。

答案 1 :(得分:0)

您可以将处理程序附加到文档mouseup事件,即

$(document.body).mouseup(function() {
    console.log("ouseup");
    clearInterval(interval);
});

这样,如果您通过单击鼠标按钮离开该区域,它将继续滚动,直到您将其释放。