2013-12-15 48 views
1

如果在主題定製程序中設置了選項,我有一些加載到我的主頁的元素。將控件添加到主題自定義器以顯示元素時,我已將傳輸設置爲postMessage,以便在更改選項時不會重新加載預覽。在我用來實時更新預覽的JavaScript文件中,當顯示額外元素的選項被更改時,我正在檢查天氣或不是元素已被加載,如果他們有我使用fadeIn和fadeOut刪除或添加元素,但是如果他們還沒有被加載,我將需要強制預覽使用jquery重新加載,因爲元素不會存在到fadeInfadeOut。下面是我的jQuery那麼遠,強制WordPress的實時預覽重新加載

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

使用此強制刷新定製預覽窗格:

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