2016-05-23 156 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值来解决了我的问题。

相关问题