[英]how do I access this jQuery variable?
我的项目中包含以下代码 ,可以帮助我进行一些非常时髦的AJAX上传。
<script>
$(function(){
var uploader = new qq.FileUploader({
action: "{% url ... %}",
element: $('#file-uploader')[0],
multiple: true,
onComplete: function(id, fileName, responseJSON) {
if(responseJSON.success) {
alert("success!");
} else {
alert("upload failed!");
}
},
onAllComplete: function(uploads) {
// uploads is an array of maps
// the maps look like this: {file: FileObject, response: JSONServerResponse}
alert("All complete!");
},
params: {
'csrf_token': '{{ csrf_token }}',
'csrf_name': 'csrfmiddlewaretoken',
'csrf_xname': 'X-CSRFToken',
'iID': '{{ itemID }}',
'received': $('letter_received').val(),
'is_company': $('letter_is_company').val(),
},
});
});
</script>
唯一的问题是我想将其他GET值传递给服务器。 我已经尝试了上面的方法,但是脚本在页面打开时执行,而不是在值更改时执行。 在上面的“ 发送其他参数 ”下的链接中,作者建议使用以下代码在运行时添加其他值:
uploader.setParams({
anotherParam: 'value'
});
我只是不知道如何访问上uploader
变量。 以以下为例:
<button onclick="update_uploader(1,0)">
...
<script>
function update_uploader(received,is_company) {
uploader.setParams({
received: received,
is_company: is_company
});
}
</script>
由于范围问题,我无法访问上uploader
。 [是的,我尝试过在$(function(){
之外)声明uploader
,但是它破坏了上传器:(]
有任何想法吗?
将var uploader
更改为uploader
。 这将使您的变量成为全局变量。
您代码中的上载器是一个局部变量,如果您想在de function()之外访问此变量,则必须声明updloader作为全局变量(但这几乎从不推荐,但实际上超出了范围)。 要解决您的问题,只需更改:
var uploader = new qq.FileUploader({
action: "{% url ... %}",
....
});
至
window.uploader = new qq.FileUploader({
action: "{% url ... %}",
....
});
然后,上传器将在页面上全局可用。
您无需将此代码放在jQuery $(function(){块中。删除代码中的第一行和最后一行应该可以。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.