如果在主题自定义程序中设置了选项,我会将一些元素加载到我的主页中。将控件添加到主题自定义程序以显示我已将传输设置为postMessage的元素时,因此在更改选项时不会重新加载预览。在我用来实时更新预览的javascript文件中,当显示额外元素的选项被更改时,我正在检查天气是否已加载元素,如果有,我使用fadeIn和fadeOut
来删除或添加元素,但是如果它们尚未加载,我将需要强制使用jquery重新加载预览,因为元素将不存在于fadeIn
或fadeOut
。以下是我到目前为止的jquery ......
wp.customize( 'element_show', function( value ) {
value.bind( function( newval ) {
if($(".element").length == 0){
//elements are not loaded so need to reload the live preview on change to load the elements, this is where I am stuck
}
else{
//elements are loaded so it is just a case of using fadeIn and fadeOut
if(newval == 'yes'){
$(".element").fadeIn();
}
else{
$(".element").fadeOut();
}
}
} );
} );
我希望有意义,提前谢谢你:)
答案 0 :(得分:0)
使用此选项强制刷新自定义程序中的预览窗格:
wp.customize.previewer.refresh();
最终代码
wp.customize( 'element_show', function( value ) {
value.bind( function( newval ) {
if($(".element").length == 0){
wp.customize.previewer.refresh();
}
else{
if(newval == 'yes'){
$(".element").fadeIn();
}
else{
$(".element").fadeOut();
}
}
} );
} );