Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/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
Javascript 匿名函数变量作用域[js,ajax]_Javascript_Ajax_Scope_Anonymous Methods - Fatal编程技术网

Javascript 匿名函数变量作用域[js,ajax]

Javascript 匿名函数变量作用域[js,ajax],javascript,ajax,scope,anonymous-methods,Javascript,Ajax,Scope,Anonymous Methods,如果用户在调用ajax回调之前单击另一个“.delete”,这可能会导致问题。它将在执行相同操作的同时触发另一个ajax请求。这是否会导致问题,取决于服务器端的情况 通常情况下,您会删除某种id或密钥……我假设在本代码后面的部分中您会删除,但现在它只会发出另一个delete并调用ajax.php…结果完全取决于该php页面 当该ajax请求完成时,会对该ajax请求进行回调,每个请求在这方面都是独立的,因此每个回调都是单独处理的sender位于当前闭包中,因此对于每个请求及其各自的回调,它也是唯

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

它将在执行相同操作的同时触发另一个ajax请求。这是否会导致问题,取决于服务器端的情况

通常情况下,您会删除某种id或密钥……我假设在本代码后面的部分中您会删除,但现在它只会发出另一个delete并调用
ajax.php
…结果完全取决于该php页面


ajax请求完成时,会对ajax请求进行回调,每个请求在这方面都是独立的,因此每个回调都是单独处理的
sender
位于当前闭包中,因此对于每个请求及其各自的回调,它也是唯一的。

它将在执行相同操作的同时触发另一个ajax请求。这是否会导致问题,取决于服务器端的情况

通常情况下,您会删除某种id或密钥……我假设在本代码后面的部分中您会删除,但现在它只会发出另一个delete并调用
ajax.php
…结果完全取决于该php页面


ajax请求完成时,会对ajax请求进行回调,每个请求在这方面都是独立的,因此每个回调都是单独处理的
sender
位于当前闭包中,因此对于每个请求及其各自的回调,它也是唯一的。

每次调用
click
处理程序时,都会创建一个单独的闭包,因此每个AJAX回调都会引用正确的变量


因此,你不必担心它。(假设服务器可以处理请求)

每次调用
click
处理程序时,都会创建一个单独的闭包,因此AJAX回调的每个回调都会引用正确的变量


因此,你不必担心它。(假设服务器可以处理请求)

它将触发另一个事件。如果希望事件只触发一次,则可以使用而不是单击。或者,您可以跟踪AJAX请求是否正在进行中;e、 g按如下方式使用:

$(".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请求是否正在进行中;e、 g按如下方式使用:

$(".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;
    }
);

您也可以通过使用全局变量、添加类等来实现同样的效果。

感谢one function提示^one function提示^^