我有以下内容:
$('.fileupload').fileupload({
dataType: 'json',
add: function(e, data) {
...
},
done: function(e, data) {
...
}
});
我需要做的是能够在所有ajax设置(add
和done
)之间使用以下内容:
var form = $(this).closest('form');
我如何在函数调用中使用该变量,以便可以在所有选项之间使用?
答案 0 :(得分:0)
回调中的上下文(this
)(add,done,..)引用你的jquery对象$('.fileupload')
所以:
$('.fileupload').fileupload({
dataType: 'json',
add: function(e, data) {
var form = $(this).closest('form');
//...
},
done: function(e, data) {
var form = $(this).closest('form');
//..
}
});
更新:
如果你只想实例化form
jquery对象一次,你必须在那之外实例化它,你可以在所有回调中使用它(=设置)
示例:
$('.fileupload').fileupload({
dataType: 'json',
add: function(e, data) {
console.info(myForm);
},
done: function(e, data) {
console.info(myForm);
}
}).closest("form").cache('myForm') ;
已知缓存是一个jquery插件:
$.fn.cache=function(varName){var that=this;
setTimeout(function(){window[varName]=$(that);},0);}