我有以下代码
<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
答案 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对象。
但是,我会推荐第一种方法,因为它更有效。