2016-04-21 244 views
3

我在頁面的主體中有一個輸入元素。並且我創建了一個setInterval方法。現在我想要的是當我的頁面打開的標籤有焦點(即,$(window).foucs();),並且當我的鼠標光標在輸入字段內時(即,我點擊了內部輸入字段,它在輸入內),setInterval應該開始。它應該繼續,直到輸入失去焦點,即光標不在輸入內。僅當輸入元素具有焦點時,如何啓動setInterval?

到目前爲止,我已經試過,但它不工作:

$(document).ready(function(){ 
    $(window).focus(function(){ 
    if(("input").is(":focus")){ 
     var aa=setInterval(newFunc, 2000); 
     function newFunc(){...........} 
    } 
    }); 
}); 
+0

,你可以添加一個檢查裏面'newFunc'將關閉的時間間隔在輸入不再集中。 – marzelin

回答

1

您可以使用:

$("input").on("focus", function() { 
    var aa = setInterval(newFunc, 2000); 
    function newFunc(){...........} 
}); 

或者做焦點了,改變focusfocusout

參見:https://api.jquery.com/focus/https://api.jquery.com/focusout/

+0

沒有先生。它會在第一次點擊輸入字段時開始間隔。我想要的是運行它,直到光標在輸入欄內。只要光標移出,它應該停止,即輸入失去焦點。 –

+0

然後看更新。 –

2

聲明變量在聚焦和模糊處理程序輸入元件之間的公共範圍。

var aa; 
$("input").focus(function(){ 
    aa = setInterval(newFunc, 2000); 
    function newFunc() { 
    ... 
    } 
}) 
$("input").blur(function(){ 
    clearInterval(aa); 
}) 

希望幫助

+0

看起來會有幫助。但是可以使用:焦點選擇器來完成嗎? –

+0

這是必要的嗎? –

+0

先生這是我的實際代碼:http://stackoverflow.com/questions/36774893/how-do-i-check-if-input-field-is-in-focus-or-not很明顯,我在這裏發佈錯誤的查詢。你能回答這個嗎? –

相關問題