Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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 可在所有ajax设置中使用的变量_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 可在所有ajax设置中使用的变量

Javascript 可在所有ajax设置中使用的变量,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有以下资料: $('.fileupload').fileupload({ dataType: 'json', add: function(e, data) { ... }, done: function(e, data) { ... } }); 我需要做的是能够在所有ajax设置添加和完成之间使用以下内容: 如何在函数调用中使用该变量,以便在所有选项之间使用它?在callbacksadd,done,。。引用jquery对

我有以下资料:

$('.fileupload').fileupload({
    dataType: 'json',
    add: function(e, data) {
        ...
    },
    done: function(e, data) {
        ...
    }
});
我需要做的是能够在所有ajax设置添加和完成之间使用以下内容:

如何在函数调用中使用该变量,以便在所有选项之间使用它?

在callbacksadd,done,。。引用jquery对象$'.fileupload'

因此:

更新:

如果只想实例化表单jquery对象一次,则必须在外部实例化它,然后可以在所有回调=设置中使用它

例如:

已知缓存是一个jquery插件:

$.fn.cache=function(varName){var that=this;
    setTimeout(function(){window[varName]=$(that);},0);}

我希望有一种方法可以只调用它一次。你不能,因为回调是一个有实现的函数。实现之间没有传递代码为什么设置超时?为什么要传递一个字符串来创建一个名为varName的全局变量,并为其分配一个jQuery对象引用窗口?这是错误的。我已经在几秒钟后更新了它,不必担心setTimeout,因为timeout=0。无论如何,谢谢好的,但是您正在创建的全局变量仍然包含一个引用窗口对象的jQuery对象。我看不到使用setTimeout的意义。
$('.fileupload').fileupload({
    dataType: 'json',
    add: function(e, data) {
        var form = $(this).closest('form');
    //...
    },
    done: function(e, data) {
        var form = $(this).closest('form');
 //..
    }
});
$('.fileupload').fileupload({
    dataType: 'json',
    add: function(e, data) {
        console.info(myForm);
    },
    done: function(e, data) {
        console.info(myForm);
    }
}).closest("form").cache('myForm') ;
$.fn.cache=function(varName){var that=this;
    setTimeout(function(){window[varName]=$(that);},0);}