我正在使用下面的代码切换自定义程序控件,但不确定如何以相同的方式切换面板/节?任何人都可以帮助我。
wp.customize.bind( \'ready\', function() { // Ready?
var customize = this; // Customize object alias.
customize( \'display_blogname\', function( value ) {
// ...previous codes...
var colorControls = [
\'header_textcolor\',
\'header_textcolor_hover\'
];
$.each( colorControls, function( index, id ) {
customize.control( id, function( control ) {
/**
* Toggling function
*/
var toggle = function( to ) {
control.toggle( to );
};
// 1. On loading.
toggle( value.get() );
// 2. On value change.
value.bind( toggle );
} );
} );
} );
} );
最合适的回答,由SO网友:Weston Ruter 整理而成
您不应该使用jQuerytoggle
. 这是直接操纵DOM元素的可见性。相反,您应该使用active
控件、节或面板的状态。您可以通过隐藏控件control.active.set(false)
. 你也可以这样做panel
或section
. 在我的帖子中看到更多的例子Dependently-Contextual Customizer Controls. 另请参见我的答案https://wordpress.stackexchange.com/a/286294/8521
要对面板或剖面执行相同操作,请执行以下操作:
wp.customize.panel( \'idOfPanel\', function( panel ) {
panel.active.set( false ); // Hide it.
// ...
} );
wp.customize.section( \'idOfSection\', function( section ) {
section.active.set( true ); // Show it.
// ...
} );
在“…”中您可能还希望覆盖
validate
上的方法
active
状态强制具有特定值,以便在自定义程序预览刷新时
active_callback
不会覆盖您在JS中设置的内容。