如何从fineuploader处理程序获取属性?

时间:2014-04-12 13:46:39

标签: javascript fine-uploader

我有以下代码

<div class="cv-uploader" id="customid">Upload CV</div>

$('.cv-uploader').fineUploader({

        debug: true,
        request: {
            endpoint: '/process',
            params:{ elementId:$(this).attr('id') }
        },
        //some other code
});

我需要在请求参数中发送触发fineuploader的元素的ID。我试过$(this).attr('id'),但它不会工作。

请帮忙

由于 的Sergiu

1 个答案:

答案 0 :(得分:0)

这是一个普通的JavaScript问题,然后是Fine Uploader问题。问题是你误解了上下文在JavaScript中是如何工作的。在您的代码中,this将始终引用window对象。显然,这不是你想要的。

你可以这样做:

$('.cv-uploader').fineUploader({

        debug: true,
        request: {
            endpoint: '/process',
            params:{ elementId:$('.cv-uploader').attr('id') }
        },
        //some other code
});

......或者这个:

$('.cv-uploader').fineUploader({

        debug: true,
        request: {
            endpoint: '/process'
        },
        //some other code
})
    .on("submitted", function(event, id) {
        $(this).fineUploader('setParams', {elementId: $(this).attr('id')}, id);
    });

后一个例子是可能的,因为Fine Uploader的jQuery插件包装器将你绑定到Fine Uploader实例的任何jQuery事件处理程序的上下文设置为表示该元素的jQuery对象。

但是,我会推荐第一种方法,因为它更有效。