javascript - setTimeout() 语法?

标签 javascript jquery

我无法让以下 setTimeouts 正常工作:

$('a').click(function(){
    if( last ) {
        if( ($(this).attr('id') == last.attr('id')) ) {
            setTimeout( function(){ 
                $(this).parent().parent().css('visibility','hidden'); 
            },500); 
            setTimeout( function(){ 
                last.parent().parent().css('visibility','hidden'); 
            },500); 
            found++; 
        } 
        if (found == 3) { 
            alert('You won a sticker!'); 
            window.location.href = "#play2"; 
            location.reload(); //resets found to 0 
        } last = null; 
    } 
    else { 
        last = $(this) 
    } 
});

setTimeout 内部的函数可以正常工作,因此这不是问题。我想知道我的语法是否有问题。不过我没发现有什么问题。

最佳答案

在第一个setTimeout this ===窗口中。您可能想要创建一个闭包

var that = this
setTimeout( function(){
    $(that).parent().parent().css('visibility','hidden');
 },500);

关于javascript - setTimeout() 语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11387848/

相关文章:

javascript - 在 Canvas Fabric JS 中的元素上添加删除按钮

javascript - 将本地 javascript 插入 iframe html

javascript - 带背景图片的Qt Installer

javascript - 如何使用 JQuery .Ajax 获取 Pingdom 检查?

jquery - 如何将此 jQuery 函数放入 .click() 中

jquery - IE7 Jquery UI Sortable问题

javascript - 使用 jQuery 禁用功能

javascript - 使用过滤器过滤对象

javascript - jQuery 克隆重复 ID

jquery - 使用 jQuery 动画化 Bootstrap 3 进度条