struts2 jquery ajax 局部刷新遇到的各種問題

   我們的網站一開始都是由前臺提交表單到action,每次一個小操作整個頁面都會刷新,影響用戶體驗,這次由我實現部分功能的局部刷新,但是初學ajax遇到不少問題j_0012.gif

1、我們在struts.xml外擴展了一個xml來寫json類型傳值的action配置,我改完後直接新寫了一個:

<action name="addAccount2"  class="random1.action.addAccount2">
<result name="showAccount" type="json">
<param name="root">list</param>
</result>
</action>

但是忘了刪掉原來的導致出錯:      

<!-- <action name="addAccount2"  class="random1.action.addAccount2">
<result name="nextaction" type="chain" >
account
</result>
<result name="failure" type="freemaker">
/error.jsp
</result>
</action> -->

 

 

2、json傳送數據後全變爲小寫

我在action裏把取到的數據(list)轉換成JSON,success函數裏循環讀取json的數據,但是在把新的內容append到相應的塊裏的時候,list裏的對象屬性首字母都是大寫的,append的時候我自然寫成大寫,然而發現取到的都是undefined。查閱資料後,發現別人都是改成小寫的,我改爲小寫的之後就正確了。

 

3、局部刷新後,相應塊的js失效

本來有個下拉的js,局部刷新後居然失效了,

 

$(document).ready(function(){
$("ul.expmenu li > div.header").click(function()
{
var arrow = $(this).find("span.arrow");
alert("arrow");
if(arrow.hasClass("up"))
{
arrow.removeClass("up");
arrow.addClass("down");
}
else if(arrow.hasClass("down"))
{
arrow.removeClass("down");
arrow.addClass("up");
}
$(this).parent().find("ul.menu").slideToggle();
});
});

解決無果後,只好把該效果放到了onclick事件裏:

 

<script>
function showcontent(id){
//alert(id);
var str="list"+id;
/* $("div").children(".list").hide();
$("#"+str).show(3000); */
var arrow = $("#"+id).find("span.arrow");
if(arrow.hasClass("up"))
{
arrow.removeClass("up");
arrow.addClass("down");
$("#"+str).hide();
}
else if(arrow.hasClass("down"))
{
arrow.removeClass("down");
arrow.addClass("up");
$("#"+str).show(3000);
}
$("#"+id).find("ul.menu").slideToggle();
}
</script>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章