2016-05-23 152 views
0

我有超過5個標籤在metabox。在每個元框中,我都有一個引導模式,用於保存一些輸入的圖像變化,以及一個類爲.btn.select_media_的按鈕和一個包含該選項卡的唯一ID的數據id屬性。點擊此按鈕打開wp上傳器。請看我的JS代碼。什麼是最好的做法,稱爲wordpress媒體上傳(wp.media)

var mediaUploader; 
$(document).on('click','.btn.select_media_',function(e){ 
    e.preventDefault(); 
    var id=$(this).data('id'); 
    // If the uploader object has already been created, reopen the dialog 
    console.log('clicked:'+id); 
    if (mediaUploader) { 
     mediaUploader.open(); 
     return; 
    } 
    // Extend the wp.media object 
    mediaUploader = wp.media.frames.file_frame = wp.media({ 
    ///mediaUploader = wp.media.frames.mediaUploader = wp.media({ 
     title: 'Choose Image', 
     button: { 
     text: 'Choose Image' 
    }, multiple: false }); 

    mediaUploader.on('select', function() { 
     attachment = mediaUploader.state().get('selection').first().toJSON(); 
     $('#img_url_'+ id).val(attachment.url); 
     $('#img_width_'+ id).val(attachment.width+'px'); 
     $('#img_title_'+ id).val(attachment.title); 
     $('#show_img_'+ id).attr('src',attachment.url); 
     console.log('selected'+ id); 
    }); 
    // Open the uploader dialog 
    mediaUploader.open(); 
}); 

問題是,當我設置/中的任何一個標籤上載的圖像此功能的圖像的遊程和設定值在mideaUploader.on('select')事件。當我嘗試在其他標籤中選擇圖像時,我在控制檯中注意到console.log('selected'+ id);具有舊值(我在第一次設置的標籤上)並且console.log('clicked'+ id);具有較新的id值。

請幫幫忙!,我的代碼有什麼問題?我怎樣才能得到同樣的價值在這個處理程序的頂部和底部?

回答

0

它很好,我通過聲明一個global object併爲此對象分配data-id值來解決了我的問題。

相關問題