Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何使用clearTimeout使页面正常工作_Jquery - Fatal编程技术网

Jquery 如何使用clearTimeout使页面正常工作

Jquery 如何使用clearTimeout使页面正常工作,jquery,Jquery,再来一次。我刚刚得到一些关于这个片段的帮助…所以现在我有最后一步。此代码在单击项目5秒后为其添加复选标记。问题是:如果连续快速单击三个项目,我需要取消不是最后一个单击项目的项目的超时。该复选框仅在单击项目并允许5秒钟后出现。代码如下: $(function() { $('li a').click(function() { $('li').not('this').css('background-position','left bottom'); $(this).pare

再来一次。我刚刚得到一些关于这个片段的帮助…所以现在我有最后一步。此代码在单击项目5秒后为其添加复选标记。问题是:如果连续快速单击三个项目,我需要取消不是最后一个单击项目的项目的超时。该复选框仅在单击项目并允许5秒钟后出现。代码如下:

 $(function() {
 $('li a').click(function() {
      $('li').not('this').css('background-position','left bottom');
      $(this).parent().css('background-position','left top');
       var thetimeout=window.setTimeout($.proxy(function() {
                 $(this).parent().css('background-image','url(images/check.png)');
            }, this)
      ,5000);
 });
}))

下面是演示:

每次设置前请先将其放好


每次设置超时之前,请先将其放置。

您必须将超时句柄存储在更大的范围内,以便它在下一个事件发生之前一直存在(即,在事件处理程序之外的范围内,以便在变量可以存在的地方创建一个闭包)

如果设置了句柄,则可以使用
clearTimeout
方法:

$(function() {

  var thetimeout = null;

  $('li a').click(function() {
    $('li').not('this').css('background-position','left bottom');
    $(this).parent().css('background-position','left top');
    if (thetimeout != null) window.clearTimeout(thetimeout);
    thetimeout = window.setTimeout($.proxy(function() {
      $(this).parent().css('background-image','url(images/check.png)');
    }, this)
  ,5000);

});

您必须将超时句柄存储在一个更大的范围内,以便它能一直保存到下一个事件(即,在事件处理程序之外的范围内,以便在变量可以保存的地方创建一个闭包)

如果设置了句柄,则可以使用
clearTimeout
方法:

$(function() {

  var thetimeout = null;

  $('li a').click(function() {
    $('li').not('this').css('background-position','left bottom');
    $(this).parent().css('background-position','left top');
    if (thetimeout != null) window.clearTimeout(thetimeout);
    thetimeout = window.setTimeout($.proxy(function() {
      $(this).parent().css('background-image','url(images/check.png)');
    }, this)
  ,5000);

});

我也是这么想的,但它不起作用。我把它添加到了演示的脚本中。我也是这么想的,但它不起作用。我将其添加到演示脚本中。