延迟后,我用它来触发一次打字暂停在一个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