[英]jQuery Background Image change, help needed please
好的,我一直在努力解決這個問題約一個半小時,進行了多次搜索,但無濟於事。 我必須以這種方式去做,所以我不能改變它的結構。
在管理面板中,我有一個div集(#background-preview)
當選擇選項更改(#pbi)時,它將更改(#background-preview)的背景圖像。
我不習慣在jQuery中使用vars,這是目前我最主要的問題。
我會擺弄一個小提琴,但是由於我有很多功能,它並沒有太大幫助。
這是我的jQuery代碼:
$( "#pbi" ).on('change', function() {
var templateDir = '<?php bloginfo("template_directory"); ?>';
$('#background-preview').css('background-image','url(templateDir + "/images/logo.png")');
});
如果我從.css區域中刪除tempateDir,則它可以工作。 它只是不能與templateDir一起使用,這真的讓我很煩! 我只是不能把頭纏住它。
然后最重要的是..最后看起來像這樣
templateDir +'/ images / backgrounds /'$(this).val()<-#pbi的val。 我只是沒有走那么遠,所以對此的任何幫助都將是不錯的選擇,否則我將繼續嘗試下一個;)
- - 編輯 - -
這是我的PHP / HTML
<div id="background-preview" style="background-image: url('<?php echo get_template_directory_uri(); ?>/images/backgrounds/<?php echo get_option('peridot_background_image'); ?>');">
<select name="peridot_background_image" id="pbi">
<?php peridot_background_images(); ?>
</select>
</div>
您的字符串連接語法幾乎沒用
$( "#pbi" ).on('change', function() {
var templateDir = '<?php bloginfo("template_directory"); ?>';
$('#background-preview').css('background-image','url(' + templateDir + '/images/logo.png)');
});
您正在使用templateDir
作為文字字符串。 試試這個
'url("' + templateDir + '/images/logo.png")'
我的問題的答案是templateDir作為PHP腳本報告回來。.我不得不將變量放在管理面板的頭部。
-最終結果-
jQuery的:
jQuery(document).ready(function($){
$( "#ptc" ).on('change', function() {
$("#colour-preview").removeClass();
$("#colour-preview").addClass($(this).val());
});
$( "#pbi" ).on('change', function() {
$('#background-preview').css('background-image','url(' + templateDir + $(this).val());
});
});
現在將腳本包括在標題中:
/* Add Scripts Into Admin Head
-----------------------------------------------------------------*/
function peridot_admin_head(){
echo "<script> var templateDir = '";
echo bloginfo("template_directory");
echo "/images/backgrounds/'; </script>";
}
add_action('admin_head', 'peridot_admin_head');
它像一種魅力一樣運作,感謝大家的幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.