javascript - 匿名函数变量作用域[js、ajax]

标签 javascript ajax scope anonymous-methods

$(".delete").click(
    function()  {
        var thesender = this;
        $(thesender).text("Del...");
        $.getJSON("ajax.php", {},
            function(data) {
                if (data["result"])
                    $(thesender).remove(); // variable defined outside
                else
                    alert('Error!');
            }
        );

        return false;
    }
);

如果用户在调用 ajax 回调之前单击另一个“.delete”,这可能会导致问题吗?

最佳答案

它会同时触发另一个 ajax 请求,做同样的事情。这是否会导致问题取决于服务器端。

通常,您会删除某种 id 或键...我假设在此代码的后面部分您会这样做,但现在它只是发出另一个删除并调用 ajax.php。 ..其结果完全取决于 PHP 页面。

那个 ajax 请求完成时,回调会发生在那个 ajax 请求上,每个请求在这方面都是独立的,因此每个回调都是单独处理的。 thesender 位于当前闭包内,因此对于每个请求及其各自的回调来说它也是唯一的。

关于javascript - 匿名函数变量作用域[js、ajax],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2663046/

相关文章:

javascript - 如何在 Bootstrap 模式将它添加到正文以调整窗口滚动时获取 padding-right 变量的值?

javascript - 状态 200 OK,相同域,有效 JSON 数据且无响应(Ajax)

javascript - jQuery - 查找没有事件的动态创建的元素

java - 修改本地 vars 会在 vars 之外发生变化吗?

javascript - 如何在 JavaScript 中创建全局变量?

javascript - 网页如何读取给定目录的文件结构?

javascript - 将 videojs 与 videojs-ima 插件捆绑在一起

javascript - [webpack 新手] webpack list 插件的自动前缀问题

php - 如何在发布表单之前将下拉选择写入 mysql

javascript - 具有动态创建元素的事件处理程序的全局变量范围