我有一个函数可以处理属性列表(My Shortlist)的各种类型的行为,这是一个<ul><li>
设置。一种类型的行为是当您单击每个项目中的按钮时删除属性列表项<li>
,但该工作正常,但是我的if
语句检查所有项目何时被删除无效。
onclick
事件和狡猾的if
语句处理删除项目:
// Remove an item from the shortlist
$(this).find('.btn-minus').click(function() {
var btnRemove = $(this);
var propTile = $(this).parents('.property-tile');
var propList = $('#property-listings');
// If IE 8 / 7
if ($('html').hasClass('lte8')) {
propTile.hide('slide', 300, function() {
btnRemove.data("tooltip").hide();
});
}
// All other browsers
else {
propTile.fadeOut(200, function() {
btnRemove.data("tooltip").hide();
$(this).remove();
});
}
if (propTile.length === 0) {
propList.remove();
}
});
这是对函数的调用:$(".my-shortlist").myShortlist();
其中.my-shortlist
是<ul>
元素。
由于
答案 0 :(得分:0)
您已将'.property-tile'元素放在变量中,因此之后隐藏它们并不会从对象变量中删除它们。因此,您需要重新执行选择器。
if ($(this).parents('.property-tile').length == 0) {
propList.remove();
}
此外,就像RogerLindsjö所提到的那样,在实际隐藏这些元素之前,您需要进行此检查。你需要在hide / fadeOut的回调中执行此操作。
答案 1 :(得分:0)
我得到了它,我必须使用<li>
方法检测最后nextAll()
,然后fadeOut
效果在最后<li>
删除后{{1} }}。这是完整的代码:
propList
干杯