我有一个问题,基本上是对此问题的跟进:WordPress 3.5 Media Uploader Multiple File Select
我正在使用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会放在第一个按钮的输入字段中。一旦第一次设置了字段变量,它就不会改变。如何在每次单击后重置它以使URL进入相应的输入文本字段?
答案 0 :(得分:1)
如果没有JSFiddle,不容易理解发生了什么。也许删除这部分?
if ( tgm_media_frame ) {
tgm_media_frame.open();
return;
}
答案 1 :(得分:1)
将按钮字段id =“field_buttonId”分别对应更容易,然后您可以轻松获取字段选择器而不是prev。
buttonID = jQuery(this).attr('id'); button = jQuery(“#”+ buttonID);
- > field = jQuery(“#field _”+ buttonID);