mousedown с колесиком мыши постоянно повторно запускает в JavaScript - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть простая страница:

<!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) и удерживаю , оно непрерывно срабатывает.Есть ли способ отключить это или просто включить его один раз, если удерживать нажатой кнопку мыши?

1 Ответ

0 голосов
/ 19 декабря 2018

В книге DOM Enlightenment Коди Линдли пишет о событии щелчка мыши:

В зависимости от конфигурации среды, событие щелчка может отправляться, если один или несколько типов событий mouseover, mousemove,Отключение мыши происходит между нажатием и отпусканием кнопки указательного устройства.За событием click может также следовать событие dblclick "

. Имея это в виду, я собираюсь сделать обоснованное предположение, что нечто подобное происходит для вас самих. Чтобы предотвратить это, вы можете захотеть посмотретьиспользуя газ или дебат, предоставляемый библиотекой Underscore.js .

...