2013-03-14 29 views
2

我試圖用Anythingslider到的div之間滑動:Anythingslider不能使用a4j:ajax?

<h:panelGroup id="preview" layout="block" 
     style="float: left; margin-left: 100px;"> 

     <ul id="slider"> 
      <li><ui:include src="./preview/WelcomePreview.xhtml" /></li> 
      <li><ui:include src="./preview/CardPreview.xhtml" /></li> 
     </ul> 

    </h:panelGroup> 

但是一旦如果我有一個表到現場,就不再工作了。請注意,我不包括我對滑塊包含的div表格!它不在列表中。也許這不是導致錯誤的表格。

這是我嘗試包括HTML:

<rich:collapsiblePanel header="Title" switchType="client" 
    expanded="false"> 

    <table style="table-layout: fixed;"> 
     <h:form> 

      <tr> 
       <td class="firstTD"><h:outputLabel value="Title: " /></td> 
       <td><h:inputText id="title" 
         value="#{skinningBean.currentSkin.title}"> 
         <a4j:ajax event="keyup" render="preview" /> 
        </h:inputText></td> 
      </tr> 
     </h:form> 
    </table> 
</rich:collapsiblePanel> 

編輯

我已經想通了,這行代碼產生錯誤:

<a4j:ajax event="keyup" render="titlePreview" /> 

有任何使它在使用ajax時都能正常工作的方法?

編輯

我也避免找不到的JavaScript函數加入jQuery的noConflict標籤右邊的第一件事:

<script type="text/javascript"> 
    var $jq = jQuery.noConflict(); 
    $jq(function($){ 
    $('#slider1').anythingSlider(); 
}); 
</script> 

現在我唯一的問題是,只要東西呈現在頁面上,JavaScript不再工作。我想這是因爲JavaScript只是在頁面初始化時加載的。而渲染不會加載完整頁面的性能?

回答

1

noConflict() mode未正確設置。它應該在文件準備功能之外來完成,像這樣:

var $jq = jQuery.noConflict(); 
$jq(function($){ 
    $('#slider1').anythingSlider(); 
}); 

我以前從未使用過A4J,但從快速看一下在這個文檔,我覺得oncomplete屬性需要使用重新初始化滑塊。嘗試是這樣的:

<a4j:ajax event="keyup" render="preview" oncomplete="initSlider()" /> 

隨後的JavaScript改成這樣:

var $jq = jQuery.noConflict(); 

function initSlider() { 
    $jq(function($){ 
    $('#slider1').anythingSlider(); 
    }); 
} 

正如我所說的,我很茫然不知使用A4J,但是這看起來像它可能工作。

+0

該更新仍然不正確。您正在使用'$'而不是'jQuery'調用文檔就緒函數。在調用noConflict()後,'$'的值將被替換爲之前的值(未定義或另一個庫)。請注意,在我的回答中,函數有一個參數,它是一個'$',它是jQuery,可以在閉包中自由使用。 – Mottie 2013-03-14 15:43:02

+0

好的,謝謝你:) 但是它不會改變任何有關讓我的Slider在渲染某個東西后轉換回簡單列表的任何事情。我想我不會找到一種方法讓它使用javascript工具 – 4ndro1d 2013-03-14 15:52:55

+0

試試我的更新答案。 – Mottie 2013-03-20 12:40:24