1

我希望延迟运行此功能 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 或显示元素。但我不确定这将如何适用于我的职能。

4

3 回答 3

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);
于 2013-04-11T14:42:24.837 回答
3

您需要使用setTimeout()因为它被触发一次,另一方面setInterval()被触发,直到调用清除间隔。

现场演示

$('#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() 方法在指定的毫秒数后调用函数或计算表达式。

设置间隔

setInterval() 方法以指定的时间间隔(以毫秒为单位)调用函数或计算表达式。

setInterval() 方法将继续调用该函数,直到调用 clearInterval() 或关闭窗口。

于 2013-04-11T14:42:55.823 回答
0

JQuery 有自己的 .delay() 函数。对于文档:http ://api.jquery.com/delay/

尽管我无法为自己的 atm 进行测试。这可能会给你一个小想法,如何实现这一点。

<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>
于 2013-04-11T14:49:28.920 回答