【问题标题】:Force WordPress live preview to reload强制 WordPress 实时预览重新加载
【发布时间】:2016-01-06 21:44:37
【问题描述】:

如果在主题定制器中设置了这样做的选项,我有一些元素会加载到我的主页中。将控件添加到主题定制器以显示元素时,我已将传输设置为 postMessage,以便在更改选项时不会重新加载预览。在我用来实时更新预览的 javascript 文件中,当显示额外元素的选项发生更改时,我正在检查天气或元素是否已加载,如果它们已加载,我使用 fadeIn 和 fadeOut 删除或添加元素,但是如果它们尚未加载,我将需要使用 jquery 强制重新加载预览,因为这些元素尚不存在于 fadeInfadeOut。以下是我的 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();
      }
    }
  } );
} ); 

我希望这是有道理的,提前谢谢你:)

【问题讨论】:

    标签: jquery wordpress wordpress-theming


    【解决方案1】:

    使用它来强制刷新定制器中的预览窗格:

    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();
      }
    }
    } );
    } ); 
    

    【讨论】:

      猜你喜欢
      • 2012-11-04
      • 2015-01-05
      • 2013-07-27
      • 2017-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-15
      相关资源
      最近更新 更多