如何清除超时这个功能?
这是我的代码,我尝试但不起作用。
我能怎么做 ?
................................................... ................................................... ................................................... .......
<form id="fid">
<input type="text" id="input_type" onkeypress="stop()" onkeyup="run()"/>
</form>
<p id="myplace"></p>
<script>
function run() {
$('#myplace').hide();
setTimeout(function(){
$.ajax
(
{
url: 'xx.php',
type: 'POST',
data: $('#fid').serialize(),
cache: false,
success: function (data) {
$('#myplace').show();
$('#myplace').html(data);
}
}
)
}, 3000);
}
function stop() {
clearTimeout();
}
</script>
最佳答案
您需要传递timeoutID。请参见https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearTimeout。
为了不污染全局范围(使用timer
,run
和stop
),我将所有内容包装在jQuery的ready处理程序中,并使用其绑定事件处理程序
<form id="fid">
<input type="text" id="input_type">
</form>
jQuery(function($) {
var myplace = $('#myplace'), form = $('#fid'), timer = null;
$('#input_type').on({
keypress: function() {
clearTimeout(timer);
},
keyup: function() {
myplace.hide();
timer = setTimeout(function() {
$.post('xx.php', form.serialize(), function(data) {
myplace.html(data).show();
});
}, 3000);
}
});
});