我有以下代码
<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') 但它不起作用。
请帮忙
谢谢 塞尔吉乌
最佳答案
这更像是一个一般性的 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 插件包装器将您绑定(bind)到 Fine Uploader 实例的任何 jQuery 事件处理程序的上下文设置为表示该元素的 jQuery 对象。
但是,我会推荐第一种方法,因为它更有效。
关于javascript - 如何从fineuploader处理程序获取属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23031199/