如果鼠标在几毫秒内没有按住一段时间,jQuery只运行函数

时间:2015-10-01 17:09:42

标签: javascript android jquery

如果鼠标没有按住一定的毫秒数,我想运行一个函数。

以下只是我想如何尝试代码但不认为这会起作用的一个例子。有人可以帮忙完成这个吗?由于Android中的错误,我无法使用“点击”事件。

var timeheld = 0;
     var holdStart, holdEnd, theElement;

     // show modal on click
     $(document).on('mousedown', '.button', function(e) {

          theElement = $(this);
          timeHeld = 0;
          holdStart = Date.now();

     }).mouseup(function() {

         timeHeld = Date.now() - holdStart;
         if(timeHeld < 200) {
             process_click(theElement);

         }

     });

1 个答案:

答案 0 :(得分:1)

我认为您的概念通常是正确的,只有一个例外:如果您委托mousedown事件 - 无论出于何种原因,您也希望对mouseup事件也这样做。< / p>

    $(document).on('mousedown', '.button', function() {
        $(this).data('start', Date.now());
    }).on('mouseup', '.button', function() {
        var df = Date.now() - $(this).data('start');
        console.log( df );
        df >= 200 || process_click( this );
    });

&#13;
&#13;
$(document).on('mousedown', '.button', function() {
    $(this).data('start', Date.now());
}).on('mouseup', '.button', function() {
    var df = Date.now() - $(this).data('start');
    console.log( df );
    df >= 200 || process_click( this );
});
function process_click( elm ) {
    console.log( elm );
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<BUTTON class="button">BUTTON 1</BUTTON><br>
<BUTTON class="button">BUTTON 2</BUTTON><br>
<BUTTON class="button">BUTTON 3</BUTTON><br>
&#13;
&#13;
&#13;