我正在使用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),這樣,當我點擊選項卡中,只有該選項卡的內容被加載了刷新。請給我建議如何做到這一點。請幫助我。 謝謝。