asp.net - SetTimeOut 的范围问题

标签 asp.net javascript jquery

我不知道为什么,但这段代码不起作用?为什么不呢?我想这是因为我在这里遇到范围问题:

function washAway(obj) {
    alert($(obj)); // says HTML Object which is fine
    setTimeout(function() {
        alert($(obj)); // says undefined
        $(obj).fadeOut("slow", function() {              
            $(this).remove();
        });
    }, 2000);
};

最佳答案

在超时中的函数执行时,它无法知道 obj 是什么 - 它是传递到设置超时的方法中的参数,但里面的函数没有提及它。

另一种方法是编写一个 jQuery 插件来等待它的行为,如下所示:

function($){ //to protect $ from noConflict()
   $.fn.pause = function(duration) {
       $(this).animate({ dummy: 1 }, duration);
       return this;
   };
}

然后你可以使用:

$(obj).pause(2000).fadeOut("slow", function() { $(this).remove(); });

关于asp.net - SetTimeOut 的范围问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2032918/

相关文章:

javascript - jquery 使用自定义属性更改 li 内的值

php - 创建一个下拉列表链,该下拉列表基于 php 中数据库中前一个的输入

asp.net - 将参数传递给 jqueryui 对话框

c# - 我的 CSS Body 样式不适用于登录页面

asp.net - 不同线程中的 HttpContext.Current.Items

c# - 标签云字号计算逻辑

javascript - 如何在变量上应用 jquery 函数?

php - 如何从另一个页面将数组发送到 Javascript 函数?

javascript - 加载外部 JSON 文件

javascript - 当鼠标移动到覆盖元素的东西时不要触发 onmouseout