[英]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.