我有一个像这样生成的表:
<table>
<tr>
<th>Članovi postave:</th>
<c:if test="${not empty user}">
<c:if test="${user.admin eq true}">
<td><a href="AddClanPostave">Dodaj novog člana postave</a></td>
</c:if>
</c:if>
</tr>
<c:forEach items="${noviFilm.clanoviPostave}" var="clanPostave">
<tr>
<td><c:out value="${clanPostave}"/><br><td>
<c:if test="${not empty user}">
<c:if test="${user.admin eq true}">
<form action="RemoveServlet" method="post">
<input type="hidden" name="type" value="movie"/>
<input type="hidden" name="entity" value="${clanPostave.id}"/>
<td><input type="submit" value="Remove"></td>
</form>
</c:if>
</c:if>
</tr>
</c:forEach>
</table>
现在,我对网络编程很陌生。在大多数情况下,我理解servlet,.jsp和el和jstl,我开始学习jQuery。这里的代码调用有问题的servlet,从适当的列表中删除给定的实体并重新加载页面,但我想知道是否可以使用jQuery更快更容易地实现这一点?
类似的东西:
$(".delete").live('click', function(event) {
$(this).parents('tr').remove();
});
问题在于我不确定这是否在列表中正常工作,而不仅仅是显示。
一个附带问题 - 是否有更有效的方法来获取所选对象。我现在正在做的是存储他的UUID id属性,然后浏览列表并比较toString值。有更好的方法吗?
答案 0 :(得分:1)
真正的问题是什么?它坏了吗?
你不应该使用live
,而是使用最新的jQuery版本并按如下方式编写:
$(document).on("click", ".delete", function(event) {
$(this).parents('tr').remove();
});
当你在这里时,改进HTML: - )
<table>
<thead>
<tr>
<th>Clanovi postave:</th>
<c:if test="${not empty user}">
<c:if test="${user.admin eq true}">
<td><a href="AddClanPostave">Dodaj novog clana postave</a></td>
</c:if>
</c:if>
</tr>
<thead>
<tbody>
<c:forEach items="${noviFilm.clanoviPostave}" var="clanPostave">
<tr>
<td><c:out value="${clanPostave}"/><br><td>
<c:if test="${not empty user}">
<c:if test="${user.admin eq true}">
<form action="RemoveServlet" method="post">
<input type="hidden" name="type" value="movie"/>
<input type="hidden" name="entity" value="${clanPostave.id}"/>
<td><input type="submit" value="Remove"></td>
</form>
</c:if>
</c:if>
</tr>
</c:forEach>
</tbody>
</table>