当焦点集中在输入字段时发生中断刷新事件



我有一个脚本,它每10秒检查一次是否刷新页面(如果ajax响应为1(,这个页面也有一个聊天框。如果用户在聊天框中有焦点(和文字(,则自动刷新检查应停止。

有可能这样做吗?

JQUERY

$( document ).ready(function() {
setInterval( CheckUpdate, 10000, 22 );
});
function CheckUpdate(n){    
$.post( "test.php", { game: n })
.done(function( data ) {
if (data==1) window.location.href = "https://thispagerefresh.com";
});
}

HTML

<form action=? method=post id=chatform>
<input type="text" name=chat id=chatinput>
<button type="submit" name=chatbtn id=chatbtn>Send</button>
</form>

您可以通过首先将setInterval()返回值存储在变量中来解决此问题。

// Syntax
var intervalID = setInterval(func, [delay, arg1, arg2, ...]);

返回的intervalID是一个非零值,用于标识调用setInterval()创建的计时器。然后,每当用户在聊天框中有焦点(和写作(时,我们只需使用clearInterval()方法停止使用此存储值的setInterval

// Syntax
clearInterval(intervalID)

因此,完整的代码看起来像:

$(document).ready(function() {
var intervalID = setInterval(CheckUpdate, 10000, 22);
// Check if user has the focus (and writing) in the chatbox
$("#chatinput").on("input", function() {
clearInterval(intervalID)
});
});

最新更新