在Customizer中,可以添加一些javascript并将控件传输到refresh
因此,每当用户更改设置时,它都会自动反映到网站预览面板上:
// Body Background Color
wp.customize( \'body_bgr_color\', function( control ) {
control.bind( function( value ) {
$( \'body\' ).css( \'background-color\', hex2rgba( value, 1 ) );
} );
} );
我正在使用
customize_preview_init
钩
每当用户使用主导航转到下一页时,就会出现此问题-javascript更改将丢失,但保留在控件窗格中。当用户导航到新的预览页面时,如何保留或重新运行javascript?
最合适的回答,由SO网友:Howdy_McGee 整理而成
由于我将所有内容都保存在硬保存(单击按钮)上,因此我试图避免通过ajax更新所有选项。下面所做的是,在预览窗格设置JS绑定时,我触发一个“更改”,将控件值重新应用于元素。我当然愿意接受更好的选择,但这在我的情况下奏效了:
jQuery( document ).ready( function( $ ) {
// Body Background Color
wp.customize( \'body_bgr_color\', function( control ) {
control.bind( function( value ) {
$( \'body\' ).css( \'background-color\', hex2rgba( value ) );
} );
$( control ).trigger( \'change\' );
} );
} );