延遲後,我用它來觸發一次打字暫停在一個textarea啓動功能:jQuery 2.1 |觸發功能在textarea的
var keyTimer;
$("#TEXTAREA").on('keyup mouseup', function(){
if (keyTimer) {
clearTimeout(keyTimer);
}
keyTimer = setTimeout(function() {
doFunction(); // Not working, triggers only once (on focus).
}, 500);
});
doFunction()只在第一KEYUP暫停(焦點)觸發。該功能必須在每次暫停(500)時觸發。現在我需要模糊TEXTAREA,然後重新集中它來重新激活對我無用的doFunction()。任何解決方案非常感謝
UPDATE:
更新代碼:
var keyTimer;
$("#TEXAREA").on('keyup mouseup', function(){
if (keyTimer) {
clearTimeout(keyTimer);
}
keyTimer = setTimeout(function() {
doFunction(); // Formulates a string
$("#TEXAREA").trigger('change');
}, 500);
}).on('change', function(){
alert('test'); // This triggers at every keyup/mouseup delay (500)
// This section of code must work after delay (500), but it doesn't,
// it only works on Textarea blur, which is not what I want:
var txtarea = $(this);
var livecount = $("#myValue").val(); // Comes from doFunction()
if (livecount.length > 2800) {
txtarea.css('color','#C00'); // Change text color of textarea
} else if (livecount.length <= 2800) {
txtarea.css('color','#000'); // Change text color of textarea
}
});
你需要之間的逗號你的事件監聽器中的事件。 'Keyup,mouseup'。執行之前,你的函數是否等待了半秒? – tylerlindell 2014-09-01 13:50:09
@tlindell使用此綁定方法不需要逗號之間的逗號。該代碼在500ms時觸發一個doFunction()。概率似乎是每500毫秒不發起textarea更改。我在textarea上觸發了一個變化,但仍然沒有任何變化。一個警報觸發功能,但到目前爲止textarea的變化是不會啓動;-( – koolness 2014-09-01 15:20:05
@tlindell - 請參閱更新。Thx輸入。 – koolness 2014-09-01 15:48:32