我有一个我网站的更新列表,这些更新是使用while循环从mysql显示的。
while ($update = $q -> fetch(PDO::FETCH_ASSOC)) {
echo '<div class="displayBox"><div>
<span class="date">' . $update['dateTime'] . '</span>';
typeColor($update);
echo '</div>
<p class="spacer indent">' . $update['message'] . '<a id="' . $update['id'] . '" class="delete deleteUpdate" href="#">Delete</a></p>
</div>';
}
当有人点击删除按钮时,我会运行一个简单的jquery ajax请求,如:
$('.deleteUpdate').click(function() {
var id = $(this).attr('id');
$.ajax({data: {deleteUpdate: id},
success: function() {
window.location = pageURL;
}
});
});
成功后我重新加载页面,是否可以不重新加载页面而是隐藏已删除的更新,保存服务器请求?如何让jquery使用class =“displayBox”找到正确的父级?
由于
答案 0 :(得分:1)
尝试使用jquery parents with selector -
演示 - http://jsfiddle.net/BgnXL/2/
$('.deleteUpdate').click(function() {
// self for ajax handling
var self = $(this);
var id = self.attr('id');
self.parents('.displayBox').hide();
});
答案 1 :(得分:0)
尝试:
$('#' + id).closest(".displayBox").hide();
答案 2 :(得分:0)
您可以使用父功能。 http://api.jquery.com/parent/ 我会把它放在click事件的回调中。
var self = $(this);
$.ajax({ success:function() {
self.parent().hide();
}