我希望延迟运行此功能3秒钟:
<script type="text/javascript">
$('#FormsPageID table tr:nth-child(12) td:nth-child(2) div span span input')
.on('focus', function(){
var $this = $(this);
if($this.val() == '4/11/2013'){
$this.val('');
}
})
.on('blur', function(){
var $this = $(this);
if($this.val() == ''){
$this.val('4/11/2013');
}
});
</script>
我遇到的所有示例都涉及在X秒后使用setTimeout或显示元素。但我不确定这将如何适用于我的功能。
答案 0 :(得分:3)
使用setTimeout:
setTimeout(function(){$('#FormsPageID table tr:nth-child(12) td:nth-child(2) div span span input')
.on('focus', function(){
var $this = $(this);
if($this.val() == '4/11/2013'){
$this.val('');
}
})
.on('blur', function(){
var $this = $(this);
if($this.val() == ''){
$this.val('4/11/2013');
}
});}, 3000);
答案 1 :(得分:3)
你需要使用setTimeout(),因为它被触发一次setInterval()被触发,直到调用清除间隔。
<强> Live Demo 强>
$('#FormsPageID table tr:nth-child(12) td:nth-child(2) div span span input')
.on('focus', function(){
var $this = $(this);
if($this.val() == '4/11/2013'){
setTimeout(function(){
$this.val('4/11/2013');
}, 3000);
}
}).on('blur', function(){
var $this = $(this);
if($this.val() == ''){
setTimeout(function(){
$this.val('4/11/2013');
}, 3000);
}
});
<强>的setTimeout 强>
setTimeout()方法调用函数或计算表达式 在指定的毫秒数之后。
<强>的setInterval 强>
setInterval()方法调用函数或计算表达式 以指定的间隔(以毫秒为单位)。
setInterval()方法将继续调用函数直到 调用clearInterval(),或关闭窗口。
答案 2 :(得分:0)
JQuery有自己的.delay()函数。 有关文档:http://api.jquery.com/delay/
虽然我无法为自己测试这个问题。这可能会让您知道如何实现这一目标。
<script type="text/javascript">
$('#FormsPageID table tr:nth-child(12) td:nth-child(2) div span span input').delay(3000).focus(function () {
var $this = $(this);
if($this.val() == '4/11/2013'){
$this.val('');
}
}).delay(3000).blur(function() {
var $this = $(this);
if($this.val() == ''){
$this.val('4/11/2013');
}
});
</script>