我有一個問題,基本上是一個跟進這一個: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