我有一个简单的页面:
<!doctype html>
<html>
<head>
<style type="text/css">
.wrapper_1
{
width:500px;
height:300px;
border:1px solid black;
overflow:hidden;
margin-top:100px;
}
.ul1
{
white-space:nowrap;
margin-bottom:35px;
background-color:#ededed;
}
</style>
</head>
<body>
<div id="d1" class="wrapper_1" style="position: relative;">
<div class="mf_scrollbar_scroll_wrapper">
<ul class="ul1">
<li>item a</li>
<li>item</li>
<li>item</li>
<li>item d</li>
<li>item</li>
<li>item lorem ipsum dolor sit amet adipiscing lorem ipsum dolor sit amet adipiscing lorem ipsum dolor sit amet adipiscing lorem ipsum dolor sit amet adipiscing</li>
<li>item</li>
<li>item h</li>
<li>item</li>
<li>item</li>
<li>item l</li>
<li>item</li>
<li>item</li>
<li>item p</li>
<li>item</li>
<li>item</li>
<li>item</li>
<li>item t</li>
<li>item</li>
<li>item</li>
<li>item x</li>
<li>item</li>
<li>item z</li>
<li>item</li>
<li>item</li>
<li>item zz</li>
<li>item</li>
<li>item</li>
<li>item zzz</li>
</ul>
<div>hello</div>
</div>
</div>
</body>
我有这个 JavaScript:
document.getElementById('d1').addEventListener('mousedown', function(evt){console.log(evt)}, false)
当我左键或右键单击并按住时,它会触发一次。如果我向下单击鼠标滚轮(按钮 4)并按住,它会连续触发。有没有办法禁用此功能,或者在按住鼠标滚轮按钮时仅触发一次?
最佳答案
在 DOM Enlightenment Cody Lindley 书中,有关鼠标单击事件的内容如下:
Depending upon the environment configuration, the click event may be dispatched if one or more of the event types mouseover, mousemove, and mouseout occur between the press and release of the pointing device button. The click event may also be followed by the dblclick event"
考虑到这一点,我将做出一个明智的猜测,类似的事情也发生在你身上。为了防止这种情况,您可能需要考虑使用 Underscore.js 提供的 throttle 或防抖功能。图书馆。
关于javascript - mousedown和鼠标滚轮在javascript中不断重新触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53857487/