WP定制器通过Java脚本比较和设置值

时间:2018-04-14 作者:Annie

我正在开发一个主题,允许用户从一组调色板中进行选择,我需要添加更多的颜色控件,以便用户可以更改网站部分的背景颜色,这些颜色是基于调色板控制的。在用户设置自定义颜色之前,我需要根据选定的调色板更新这些选项上的颜色(无需刷新)。

我需要一些类似的Weston Ruter\'s answer on this question 但我似乎不知道如何比较当前值并根据它设置颜色。

下面的代码在不刷新的情况下更新颜色,但仅更新最后一条“else”语句中的选项,每当我尝试比较这些值时,它都不起作用。

wp.customize( \'themeb_scheme\', \'themeb_footerbg\', function( themeb_scheme, themeb_footerbg ) {
themeb_scheme.bind( function( value ) {

    if( themeb_scheme == \'light\'){
        themeb_footerbg.set( \'#eaeaea\' );
    } else if( themeb_scheme == \'dark\'){
        themeb_footerbg.set( \'#323232\' );
    } else  {
        themeb_footerbg.set( \'#828282\' );
    }

} );
});

我对jquery没有任何经验,编写布局的人已经不再与我们合作,我被要求进行这些更改,因此非常感谢任何帮助。

1 个回复
最合适的回答,由SO网友:dgwyer 整理而成

您正在将更改绑定到themeb_scheme 通过带参数的匿名回调函数value 作为的新设置themeb_scheme.

这应该可以:

wp.customize( \'themeb_scheme\', \'themeb_footerbg\', function( themeb_scheme, themeb_footerbg ) {
  themeb_scheme.bind( function( value ) {

    if( value == \'light\'){
      themeb_footerbg.set( \'#eaeaea\' );
    } else if( value == \'dark\'){
      themeb_footerbg.set( \'#323232\' );
    } else  {
      themeb_footerbg.set( \'#828282\' );
    }
} );

结束