我有以下JavaScript代码:
$(function() {
var parent = '';
$('a.tip').click(function(e) {
e.preventDefault();
parent = $(this).parent();
$('#deletelink').dialog('open');
return false;
});
$('#deletelink').dialog({
autoOpen: false,
width: 300,
buttons: {
"Ok": function() {
$.ajax({
type: 'post',
url: 'asd',
data: 'ajax=1&delete=' + parent.attr('id').replace('record-',''),
beforeSend: function() {
parent.animate({'backgroundColor':'#fb6c6c'},300);
},
success: function() {
parent.slideUp(300,function() {
parent.remove();
});
}
});
$(this).dialog("close");
},
"Cancel": function() {
$(this).dialog("close");
}
}
});
});
我使用以下html代码:
<li class="odd">
<div class="avatar-container">
<div class="avatar">
<div class="imgDelete" id="record-1" style="text-align:center;">
<a class="tip" href="javascript:void(0);" title="This action cannot be undone!"><span>Delete</span></a>
</div>
</div>
</div>
</li>
<li class="even">
<div class="avatar-container">
<div class="avatar">
<div class="imgDelete" id="record-2" style="text-align:center;">
<a class="tip" href="javascript:void(0);" title="This action cannot be undone!"><span>Delete</span></a>
</div>
</div>
</div>
</li>
上面的html代码是用php循环生成的。
我的问题是,当我点击“删除”链接时,只有父div被滑动。我需要让它向上滑动整个<li>
。
有什么帮助吗?
答案 0 :(得分:1)
parent = $(this).parent();
指的是父DIV而不是LI,你需要使用链式父母,即。 .parent()。parent()但是要使用多少才能返回LI元素
答案 1 :(得分:1)
这是因为您正在选择.parent()
元素的链接的即时<div class="imgDelete"..
您需要使用
parent = $(this).closest('li');
而不是
parent = $(this).parent();
.closest()搜索向上 dom层次结构,以查找与选择器匹配的下一个元素。在您的情况下,选择器为'li'
,因此它将搜索DOM层次结构以查找<li>
元素。
答案 2 :(得分:1)