2014-10-09 67 views
0

遵循HTML按钮和文本字段:在多个按钮上使用Wordpress媒体上传?

<div class="meta-container"> 
    <div class="label col-2 left"> 
     <label class="squeeze-label">Imagem Logo:</label> 
    </div> 
    <div class="col-6"> 
     <input class="definir_imagem_url" type="text" size="36" name="super-squeeze-meta[imagemLogo]" value="<?php echo $this->data['imagemLogo']; ?>" /> 
     <input class="definir_imagem_button button" type="button" value="Definir Imagem" /> 
     <a id="remover_imagem_logo" class="button remove-bg"><div class="dashicons dashicons-post-trash"></div>Remover Imagem</a> 
     <p class="description">Imagem que ficará acima da headline.</p> 
    </div> 
</div> 

<div class="meta-container"> 
    <div class="label col-2 left"> 
     <label class="squeeze-label">Imagem Background:</label> 
    </div> 
    <div class="col-6"> 
     <input class="definir_imagem_url" type="text" size="36" name="super-squeeze-meta[imagemBackground]" value="<?php echo $this->data['imagemBackground']; ?>" /> 
     <input class="definir_imagem_button button" type="button" value="Definir Imagem" /> 
     <a id="remover_imagem_background" class="button remove-bg"><div class="dashicons dashicons-post-trash"></div>Remover Imagem</a> 
     <p class="description">Imagem que ficará no fundo da página. Por padrão será feito upload de uma nova imagem para o Wordpress, caso necessite será possível informar um link externo.</p> 
    </div> 
</div> 

及以下如​​下JavaScript来使按钮类“definir_imagem_button”打开本地WordPress的媒体上传并在各自的文本字段级“definir_imagem_url”插入所选图片网址:

$('.definir_imagem_button').click(function(e) 
{ 
    e.preventDefault(); 

    var custom_uploader = wp.media({ 
     title: 'Selecionar Imagem', 
     button: { 
      text: 'Definir Imagem' 
     }, 
     multiple: false // Set this to true to allow multiple files to be selected 
    }) 

    .on('select', function() 
    { 
     var attachment = custom_uploader.state().get('selection').first().toJSON(); 
     $('.definir_imagem_url').val(attachment.url); 
    }) 

    .open(); 

}); 

的问题是该行$('.definir_imagem_url').val(attachment.url);分配为类的所有字段的值,我需要添加只有被点击相应的按钮的文本字段的值。有什么更好的方法来做到这一点

回答

1

如果您知道每个按钮的HTML结构都是相同的,则可以捕获哪个按钮被单击并使用该按钮来查找最近的.definir_imagem_url输入。

$('.definir_imagem_button').click(function(e) { 
    e.preventDefault(); 
    var btnClicked = $(this); 
    var custom_uploader = wp.media({ 
     title: 'Selecionar Imagem', 
     button: { 
      text: 'Definir Imagem' 
     }, 
     multiple: false // Set this to true to allow multiple files to be selected 
    }) 
    .on('select', function() { 
     var attachment = custom_uploader.state().get('selection').first().toJSON(); 
     $(btnClicked).parent().children('.definir_imagem_url').val(attachment.url); 
    }) 
    .open(); 
}); 
相关问题