Javascript 使用「;setTimeout();在我的jQuery表达式中
我试图将JavaScript函数Javascript 使用「;setTimeout();在我的jQuery表达式中,javascript,jquery,settimeout,Javascript,Jquery,Settimeout,我试图将JavaScript函数setTimeout()添加到我的jQuery表达式中。如果不使用setTimeout(),当我在文本框中输入文本时,我的函数将加载包含更新信息的局部视图。但是,每次击键都会加载信息。我的逻辑是,如果我可以输入一个计时器,那么当用户停止键入时,一秒钟后数据就会更新 正如您所看到的,我试图将setTimeout()放入,但它似乎不起作用 $(function() { $('#DocId').live('keyup', function() {
setTimeout()
添加到我的jQuery表达式中。如果不使用setTimeout()
,当我在文本框中输入文本时,我的函数将加载包含更新信息的局部视图。但是,每次击键都会加载信息。我的逻辑是,如果我可以输入一个计时器,那么当用户停止键入时,一秒钟后数据就会更新
正如您所看到的,我试图将setTimeout()
放入,但它似乎不起作用
$(function() {
$('#DocId').live('keyup', function() {
setTimeout(var styleValue = $(this).val();
$('#tableContent').load(
'/CurReport/TableResults',
{ style: $(this).val()}), 1000);
}),
});
谢谢,
Aaron您可以使用并放入一个延迟计时器,该计时器将重置每次按键,如下所示:
$('#DocId').live('keyup', function() {
clearTimeout($.data(this, 'timer'));
var val = $(this).val();
var wait = setTimeout(function() {
$('#tableContent').load('/CurReport/TableResults', { style: val });
}, 1000);
$(this).data('timer', wait);
});
这将在键入的元素上设置每击一次1秒的超时时间(可以同时进行任意数量的击键)。每次击键都会清除上一个计时器并设置一个新的计时器,因此只有在不键入1秒钟后,函数才会启动
注意:不要删除
var val=$(this.val()代码>部分,您需要变量,因为当函数实际执行时,此
是不同的上下文。感谢您的帮助。我注意到是你回答了我的大部分JavaScript问题。