簡體   English   中英

如何訪問此jQuery變量?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM