2012-02-24 37 views
1

我正在使用liferay-ui:標籤只要我點擊任一標籤頁,整個頁面就會刷新。我不希望頁面被刷新。所以,我嘗試使用 liferay-ui:部分標記並將liferay-ui:標籤的「刷新」屬性設置爲false。但是通過這種方式,我發現第一次加載Portlet時,所有選項卡的內容也會同時加載,這會降低性能係數。 這裏是我的代碼:如何實現liferay-ui:使用Ajax的選項卡?

<liferay-ui:tabs names="<%= tabs %>" refresh="false" param="selectedTab"> 
    <liferay-ui:section > 
     <liferay-util:include page="/html/resourceurlajax/sample_tab_1.jsp" servletContext="<%=this.getServletContext() %>" /> 
    </liferay-ui:section> 

    <liferay-ui:section> 
     <liferay-util:include page="/html/resourceurlajax/sample_tab_2.jsp" servletContext="<%=this.getServletContext() %>" /> 
    </liferay-ui:section> 

    <liferay-ui:section> 
     <liferay-util:include page="/html/resourceurlajax/sample_tab_3.jsp" servletContext="<%=this.getServletContext() %>" /> 
    </liferay-ui:section> 
</liferay-ui:tabs> 

我試圖通過保持的Liferay的用戶界面來實現這個使用jQuery:在DIV元素標籤,然後點擊DIV#ID元素,我試圖讓點擊標籤的名稱。但是這顯示「jQuery未定義」類型的錯誤,而jQuery正在使用toggle()函數。我發現當在fireBug控制檯中運行jQuery代碼時,我得到了帶有相應選項卡名稱的標籤警報onClick,但是否則顯示錯誤。

這是使用jQuery的代碼。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
     $("#<portlet:namespace/>ajax-tabs-demo.aui-tab").click(function(){ 
     alert($('a',this).html()); 
    }); 

}); 
/script> 

<div id="<portlet:namespace/>ajax-tabs-demo"> 
<liferay-ui:tabs names="<%= tabs %>" refresh="false" param="selectedTab"> 

</liferay-ui:tabs> 

有什麼辦法來實現這個使用AJAX(如果我點擊標籤名稱或標籤-ID),這樣,當我點擊選項卡中,只有該選項卡的內容被加載了刷新。請給我建議如何做到這一點。請幫助我。 謝謝。

回答

1

我是liferay的新手,但最近我在使用Liferay.fire和Liferay.on(客戶端IPC)的IPC中實現了AJAX。我成功地實現了AJAX的功能。這裏有一些鏈接。可能是它可以幫助你......

http://www.liferay.com/community/wiki/-/wiki/Main/portlet+to+portlet+communication

http://www.liferay.com/community/wiki/-/wiki/Main/Inter-portlet+communication

所以,你可以嘗試,你有標籤(在我的情況,我有按鈕)來實現這個選項卡上的點擊。希望這可以幫助你解決你的問題。

相關問題