我有一个问题,基本上是一个跟进这一个:WordPress 3.5 Media Uploader Multiple File Select获取jQuery的变量重置每次点击功能执行
我使用this code使用WordPress的媒体上传的插件管理脚本,需要三个独立图像上传的文本框。我按照以下方式编辑了代码,以便将图像url返回到相应文本框的值。
jQuery(document).ready(function() {
var tgm_media_frame;
var field;
var buttonID;
var button;
jQuery('.upload-images').click(function() {
if (tgm_media_frame) {
tgm_media_frame.open();
return;
}
buttonID = jQuery(this).attr('id');
button = jQuery("#"+buttonID);
field = button.prev('input');
tgm_media_frame = wp.media.frames.tgm_media_frame = wp.media({
multiple: true,
library: {
type: 'image'
},
});
tgm_media_frame.on('select', function(){
var selection = tgm_media_frame.state().get('selection');
selection.map(function(attachment) {
attachment = attachment.toJSON();
console.log(field.attr('id'));
field.val(attachment.url);
});
});
tgm_media_frame.open();
});
});
当我点击第一个按钮并上传图片时,它按预期工作。然而,当我点击同一类的不同按钮上传下一张图片时,上传器工作正常,但是网址放置在第一个按钮的输入字段中。一旦字段变量第一次被设置,它就不会改变。如何在每次点击后重置它以便URL进入相应的输入文本字段?
不知道为什么,但它的工作。谢谢! – liz
好吧,你有“var tgm_media_frame;”在函数外部,所以在函数结束时它仍然存在。我建议你删除的代码位是检查变量,看它是否为空,如果不是空的,它将会打开()并退出你的函数; – vahanpwns