我有一个父DIV(.box)和一个孩子(#display)。如果孩子被隐藏,我想淡出父母。但它仍然有效:S
if( $('#display').is(':visible') ) {
$(this).parent(".box").fadeTo(100,1);
} else {
$(this).parent(".box").fadeTo(100,0.7);
}
答案 0 :(得分:0)
很难准确说出要给出的建议,因为我不知道是什么触发了这段代码。
我假设这不在事件处理程序中。
var $display = $('#display'); // cache #display for better performance
if( $display.is(':visible') ) {
$display.parent(".box").fadeTo(100,1);
} else {
$display.parent(".box").fadeTo(100,0.7);
}
this
的值将引用在其事件处理程序中接收事件的元素。对于if()
语句,这不起作用。
答案 1 :(得分:0)
您很可能没有正确使用$(this)
。尝试将代码更改为:
if( $('#display').is(':visible') ) {
$('#display').parent(".box").fadeTo(100,1);
} else {
$('#display').parent(".box").fadeTo(100,0.7);
}
您可以详细了解this
关键字in ppk's site。
答案 2 :(得分:0)
Reinis'代码应该可以工作,如果没有尝试这个:
if( $('#display')[0].is(':visible') ) {
$('#display')[0].parent().fadeTo(100,1);
} else {
$('#display')[0].parent().fadeTo(100,0.7);
}
另外,请确保您正在触发此代码。尝试在那里放一些警报。