你会如何解决这个问题? 当鼠标按钮关闭且鼠标离开(#List)...
时,它应滚动这就是我所做的同时,但我不知道如何检查,如果jQuery mouseenter事件发生以及鼠标按钮是否已关闭......
$('#List').mouseleave(function(){
var api = $(scrollPane).data('jsp');
while ( ??? ){
api.scrollByY(50, false);
}
});
有什么建议吗?
答案 0 :(得分:3)
永远不要将Javascript置于“忙”循环中。它会使您的浏览器无响应。
假设你想要的东西是可能的(我不确定它是什么,因为从一个元素开始并在另一个元素中完成的事件是棘手的),你需要这样的东西:
function doScroll() {
api.scrollByY(50, false);
}
$('#List').mouseleave(function(ev) {
var timer = null;
if (ev.which) { // if a button is pressed
timer = setInterval(doScroll, 200); // regularly call 'doScroll'
$(document).one('mouseup', function() { // and register a one-off mouseup
clearInterval(timer); // which stops the timer
timer = null;
}
}
});
注意:未经测试,可能无效,遗漏和错误可能等等。
答案 1 :(得分:0)
感谢您的快速回答!在研究了很多事件和setInterval之后,我对这个话题了解得更多... 但仍然有一件事:ev.which
总是“1”,而我按住鼠标左键离开“#List”或不...当我按住鼠标右键或鼠标中键时,它变为2和3 ...与事件属性按钮相同,按住鼠标左键没有区别...