Tom*_*arz 46 jquery if-statement show hide visible
我正在尝试编写一个隐藏/显示div的脚本,具体取决于其他元素的可见性.当我点击其他元素时,应该执行该操作.这是我到目前为止所写的内容:
$('#column-left form').hide();
$('.show-search').click(function() {
$('#column-left form').stop(true, true).slideToggle(300);
if( $('#column-left form').css('display') == 'none' ) {
$("#offers").show();
} else {
$('#offers').hide();
}
});
Run Code Online (Sandbox Code Playgroud)
它隐藏了div,但是当我隐藏表单时它不会回来.对任何帮助都会很有帮助:)
编辑:
好吧,我已经设法通过写这个来达到预期的效果:
$('#column-left form').hide();
$('.show-search').click(function() {
if ($('#column-left form').is(":hidden")) {
$('#column-left form').slideToggle(300);
$('#offers').hide();
} else {
$('#column-left form').slideToggle(300);
$("#offers").show();
}
});
Run Code Online (Sandbox Code Playgroud)
我不知道它是否写得正确但是有效;)谢谢大家的帮助!
Thi*_*ter 121
您可以.is(':visible')
用来测试某些东西是否可见并.is(':hidden')
测试相反的东西:
$('#offers').toggle(!$('#column-left form').is(':visible')); // or:
$('#offers').toggle($('#column-left form').is(':hidden'));
Run Code Online (Sandbox Code Playgroud)
参考:
是的,您可以.is(':visible')
在 jquery 中使用。但是当代码在 safari 浏览器下运行时
.is(':visible')
是行不通的。
所以请使用下面的代码
if( $(".example").offset().top > 0 )
Run Code Online (Sandbox Code Playgroud)
上面的行也适用于 IE 和 safari。