jQuery背景图片更改,请帮助

时间:2013-11-26 11:20:24

标签: javascript jquery html css

好的,我一直试图绕过这个约一个半小时,做了多次搜索,没有任何问题。我必须这样做,所以我无法改变这种结构。

在管理面板中,我有一个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>

3 个答案:

答案 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');

它很有魅力,感谢大家的帮助。