簡體   English   中英

jQuery僅在鼠標未按下特定時間(毫秒)的情況下運行函數

[英]jQuery only run function if mouse NOT held down for a certain time in milliseconds

如果鼠標在一定時間內沒有按下,我想運行一個函數。

下面僅是一個示例,說明我如何嘗試代碼,但認為這行不通。 誰能幫忙做到這一點? 由於Android中的錯誤,我無法為此使用'click'事件。

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);

         }

     });

我認為您的概念通常是正確的,只有一個例外:如果您要委托mousedown事件-出於某種原因,您也希望對mouseup事件也做同樣的事情。

    $(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 );
    });

 $(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 ); } 
 <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> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM