我有一个div列表,就像这样:
$(".portfolio-categories a").click(function(e){
e.preventDefault();
var id=$(this).attr("id").split("-")[1];
$(".portfolio-item").not(".portfolio-cat-"+id).fadeOut(400, function(){
alert("done");
});
});
共有3个菜单:ALL WORKS,Residential,Commercial。如果我点击住宅,那么所有" portfolio-item"旁边" portfolio-cat-1"将被隐藏。商业,所有div"投资组合项目"旁边" portfolio-cat-2"将被隐藏。
我为此使用.not()。这是我的jquery代码:
create function dbo.birthdate_from_cpr(@cpr varchar(10))
returns date
as
begin
declare @year char(2) = substring(@cpr, 5, 2),
@month char(2) = substring(@cpr, 3, 2),
@day char(2) = substring(@cpr, 1, 2),
@century char(2)
if right(datepart(yy, getdate()), 2) < @year
set @century = left(datepart(yy, getdate()) - 100, 2)
else
set @century = left(datepart(yy, getdate()), 2)
return convert(date, @century + @year + @month + @day, 120)
end
go
select dbo.birthdate_from_cpr('1312761234'),
dbo.birthdate_from_cpr('0101041234'),
age = datediff(yy, dbo.birthdate_from_cpr('1312761234'), getdate())
问题是,当我点击住宅(cat-1)时,所有投资组合-cat-1 div都被隐藏而不是投资组合-cat-2。什么地方出了错?我不应该使用.not()吗?
任何帮助都将不胜感激。
答案 0 :(得分:2)
$(".portfolio-categories a").click(function(e){
e.preventDefault();
var id=$(this).attr("id").split("-")[1];
console.log(id)
$(".portfolio-item:not(.portfolio-cat-"+id+")").fadeOut(400, function(){
console.log("done");
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="portfolio-categories">
<ul>
<li><a href="#" id="cat-all" class="active">ALL WORKS</a></li>
<li><a href="#" id="cat-1">Residential</a></li>
<li><a href="#" id="cat-2">Commercial</a></li>
</ul>
<div class="clear"></div>
</div>
<div class="portfolio-container">
<div class="portfolio-item portfolio-cat-1">1</div>
<div class="portfolio-item portfolio-cat-1">2</div>
<div class="portfolio-item portfolio-cat-1">3</div>
<div class="portfolio-item portfolio-cat-2">4</div>
<div class="portfolio-item portfolio-cat-2">5</div>
</div>
&#13;
尝试使用选择器:not()
答案 1 :(得分:0)
$(".portfolio-item").fadeIn(400).not(".portfolio-cat-"+id).fadeOut(400);
您需要使用fadeIn
恢复以前隐藏的元素尝试以上一行