在javascript中更新VAR

时间:2011-06-03 19:17:48

标签: javascript jquery uploadify

如何更新uploadify中的“storage”var set?我有这个函数set_path,它将var组合更新为在选择某些内容时启动的其他值

$(document).ready(function () {
    $('#uploader').uploadify({
        'uploader': '/admin/includes/uploadify/uploadify.swf',
        'script': '/admin/includes/uploadify/uploadify_storage.php',
        'scriptData': {
            'sessionId': sessionId
        },
        'cancelImg': '/admin/includes/uploadify/cancel.png',
        'buttonImg': '/site_images/button.png',
        'folder': storage,
        'auto': false,
        'multi': true,
        'fileExt': '*.jpg',
        'simUploadLimit': 2,
        'wmode': 'transparent',
        'onComplete': function (event, ID, fileObj, name, response, data) {
            alert(storage);
        }
    });
    $("#start").click(function () {
        $("#uploader").uploadifyUpload();
    });
})
var absolute_path = "/admin/storage/files/";
var path = "";
var storage = absolute_path + path;

function set_path(new_path) {
    storage = absolute_path + new_path;
    show_path(new_path);
}

如果启动了set_path,则新的存储var会更新,“onComplete”中的警报会显示正确的内容,问题是'folder': storage包含原始“存储”,并且在设置新内容时没有更新路径。为什么呢?

2 个答案:

答案 0 :(得分:2)

由于您将原始对象提供给folder属性,因此需要重新设置密钥的值。

onComplete中,获取对所提供对象的引用,或创建一个setter方法并将其folder属性设置为新存储。

答案 1 :(得分:2)

因为存储变量仅用于在实例化时将值传递给uploadify设置数组,所以它不会“存在”那里。

您要做的是更改uploadify对象的'folder'设置。

根据Uploadify documentation,你的set_path函数应如下所示:

function set_path(new_path) {
    $('#uploader').uploadifySettings ('folder', absolute_path + new_path);
    show_path(new_path);
}