我真的希望你能帮助我,因为我搜索了其他几个问题,但没有任何解决方案可以帮助我。问题是:我正在建立一个投资组合网站,点击一个div打开一个更大的div与更多的信息。那些较小的div共享同一个类 - 我怎么能告诉jQuery只在div中添加一个带有'trigger'的类?
我的Javascript看起来像这样:
$( document ).ready(function() {
$('#moreinfo').addClass('hidden');
$('.portfoliotile p').addClass('hidden');
$('.portfoliotile h1').addClass('hidden');
$('.trigger').click(function(){
$('#moreinfo').removeClass('hidden');
$(this).parent().addClass('dark');
});
$('#closegall').click(function(){
$('#moreinfo').addClass('hidden');
$('.portfoliotile').removeClass('dark');
});
});
我真的希望你能帮助我,随时看看THIS FIDDLE
答案 0 :(得分:1)
你想改变相对于 this 的祖先,因为在处理程序中,这个是被点击的元素:
您通常应使用closest
代替parent
,因为它更能容忍DOM /布局更改。
e.g。
$(this).closest('.portfoliotile').addClass('dark');
JSFiddle:http://jsfiddle.net/TrueBlueAussie/632Fw/164/
由于jQuery支持隐藏和显示,我建议使用其方法(hide
/ show
,fadeIn
/ fadeout
,slideDown
/ {{1等等)。