2017-04-24 167 views
1

的動作,我從這個代碼:Jquery: mousedown effect (while left click is held down) 據表現,如果我在每50ms按住該按鈕,它會做什麼。按住按鈕使用jQuery

var timeout = 0; 
$('#button_add').mousedown(function() { 
    timeout = setInterval(function() { 
     value_of_something ++; 
    }, 50); 
    return false; 
    }); 
}); 

但我想要的是按住按鈕1秒後執行此部分,它會持續執行動作50ms。

+0

你需要使用'set超時(函數(){//代碼在這裏},1000);秒' –

+0

後1我想在50ms的持續執行的代碼,但不是每1秒後。 – keisaac

回答

2

正如我所說的,你需要使用setTimeout()

var timeout = 0; 
$('#button_add').mousedown(function() { 
    setTimeout(function(){ 
     timeout = setInterval(function() { 
        value_of_something ++; 
       }, 50);   
    } , 1000); 
    return false; 
}); 

Jsfiddle

+0

你可以添加我將如何阻止它?我不能老是用'鼠標鬆開及移出function' – keisaac

+0

@keisaac http://jsfiddle.net/mohamedyousef1980/8FmRd/1033/ –

+0

沒那麼存儲友好的解決方案阻止它.. – kotapeter

-1

請使用此代碼......你必須clearTimeout當用戶鼠標鬆開:

var timeout = 0; 
 

 
$('#button_add').mousedown(function() { 
 
    oneSecondTimer = setTimeout(function() { 
 
     timeout = setInterval(function() { 
 
      value_of_something++; 
 
     }, 50); 
 
    }, 1000); 
 

 
    return false; 
 
}); 
 

 
$("#button_add").mouseup(function() { 
 
    clearTimeout(oneSecondTimer); 
 
});