您好,登錄后才能下訂單哦!
我們的網站一開始都是由前臺提交表單到action,每次一個小操作整個頁面都會刷新,影響用戶體驗,這次由我實現部分功能的局部刷新,但是初學ajax遇到不少問題
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>
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。