javascript - mousedown和鼠标滚轮在javascript中不断重新触发

标签 javascript triggers click mousewheel

我有一个简单的页面:

<!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/

相关文章:

Javascript - 如何每秒显示和隐藏一个元素?

javascript - 立即实例化 JavaScript 对象和调用方法

mysql - SIGNAL SQLSTATE '45000' 不停止插入

postgresql - 获取调用某个函数的所有触发器

json - 如何将 PostgreSQL 触发器中的新数据存储为 JSON?

javascript - OpenLayers 2.13 吃鼠标左键单击?

c# - 如何在 C# 中发生异常后跳出一系列单独的语句

javascript - 如何使用 javascript 检查表格是否可见?

javascript - 我想防止我的搜索表单中出现空字段

javascript - 重新定义点击选择器 jQuery