我在這樣生成的網頁上有一個部分。Jquery .load()後面一步
<table>
<c:forEach items="${personList}" var="person">
<tr>
<td>
</td>
<td>
<h2 style="text-align:left;">${person.reviewName}</h2>
<h2 style="text-align:right;">by ${person.name}</h2>
</td>
</tr>
<tr>
<td style="text-align:right;">
<img src="<c:url value="/resources/${person.id}.jpg" />" >
</td>
<td>
${person.review}
</td>
</tr>
<tr>
<td>
</td>
<td>
<div id="${person.id}" class="comment">comments</div>
</td>
</tr>
<tr id="ins${person.id}">
<td>
</td>
<td id="comments${person.id}" style="display:none">
<div id="ins${person.id}">
<table>
<c:forEach items="${person.comments}" var="comment">
<tr>
<td>
${comment}
</td>
</tr>
</c:forEach>
</table>
Add Comment:
<textarea id="comment${person.id}"></textarea>
<button onClick="addComment(${person.id})">add Comment</button>
</div>
</td>
</tr>
</c:forEach>
</table>
我想使用JQuery.load()立即更新評論部分,當這樣添加新的評論時。
function addComment(id) {
$.getJSON("addComment", {id:id, comment:$("#comment" + id).val()});
$("#comments2").load("home #ins2");
}
的問題是,當我點擊添加,只顯示我以前添加註釋的評論,這意味着註釋部分始終是一個落後的評論。如果我在添加評論後直接加載頁面,它應該顯示它。另一個奇怪的是,當我添加評論時,插入空白行時,評論的頂部,當我直接加載頁面時,不存在/消失。
我想這可能是某種緩存問題,從而試圖將其關閉使用
$.ajaxSetup ({
cache: false
});
然而,這並沒有區別。
我真的在這個死路一條。這與我正在使用load()作爲forEach標記的部分有關嗎?
您可能(也可能應該)修改該功能,以便執行單個AJAX調用,該調用既添加新評論,然後返回所有評論的HTML。或者您可以添加新評論,並僅返回新評論的HTML,然後將其附加到頁面的相關部分。 –