好的,我一直试图绕过这个约一个半小时,做了多次搜索,没有任何问题。我必须这样做,所以我无法改变这种结构。
在管理面板中,我有一个div设置(#background-preview)
当选择选项改变(#pbi)时,它将改变(#background-preview)的背景图像。
我不习惯jQuery中的变种,这是我目前最主要的问题。
我会做一个小提琴,但由于我有很多功能,所以它并没有太大的帮助。
这是我的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()&lt; - val of #pbi。我只是没有做到这一点,所以任何帮助都会很好,或者我只会尝试下一步;)
---- ---- EDIT
这是我的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>
答案 0 :(得分:2)
您的字符串连接语法很少
$( "#pbi" ).on('change', function() {
var templateDir = '<?php bloginfo("template_directory"); ?>';
$('#background-preview').css('background-image','url(' + templateDir + '/images/logo.png)');
});
答案 1 :(得分:2)
您使用templateDir
作为文字字符串。试试这个
'url("' + templateDir + '/images/logo.png")'
答案 2 :(得分:0)
我的问题的答案是templateDir报告为PHP脚本..我必须将变量放在管理面板的head部分。
- 最终结果 -
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');
它很有魅力,感谢大家的帮助。