Aar*_*zar 3 javascript jquery settimeout
我正在尝试将JavaScript函数添加setTimeout()到我的jQuery表达式中.setTimeout()当我在文本框中输入文本时,如果没有my函数,则会加载包含更新信息的局部视图.但是,它会在每次按键时加载信息.我的逻辑是,如果我可以放入计时器,那么当用户停止输入时,一秒钟后数据就会更新.
正如你所看到的那样,我试图放入一个setTimeout(),但它似乎没有起作用.
$(function() {
$('#DocId').live('keyup', function() {
setTimeout(var styleValue = $(this).val();
$('#tableContent').load(
'/CurReport/TableResults',
{ style: $(this).val()}), 1000);
}),
});
Run Code Online (Sandbox Code Playgroud)
谢谢,
亚伦
您可以使用.data()并放入一个延迟计时器,重置每次按键,如下所示:
$('#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);
});
Run Code Online (Sandbox Code Playgroud)
这会在键入它的元素上每次击键时设置1秒的超时(可以同时进行任意数量的这些击键).每次击键都会清除前一个计时器并设置一个新计时器,因此只有在完成第二次未输入后,该功能才会触发.
注意:不要删除该var val = $(this).val();部分,您需要变量,因为this当函数实际执行时,它是一个不同的上下文.
| 归档时间: |
|
| 查看次数: |
428 次 |
| 最近记录: |