[英]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.