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