这个小JS意味着在用户点击按钮时运行。首先,我检查元素是否可见 - 然后根据检查显示/隐藏它。
问题是if语句每次都验证为FALSE - 即使else语句将style.display设置为我在if语句中要求的内容。
在我的简单世界中,语句每次运行都会返回true ...
if (d[0].style.diplay == 'block') {
$(d[0]).slideUp('slow');
} else {
d[0].style.display = 'block';
}
我在监督什么?
答案 0 :(得分:1)
diplay
错字旁边...(缺少s
)
在执行slideUp
时,您可以直接转到.is(":visible")
取决于你想要什么(不是你当前的问题的夹板),但看到这个:
var $el = $(d[0]);
if( $el.is(":visible") ){
// is visible
}else{
// is slided up (not visible)
}
你也可以简单地slideToggle()
var $el = $(d[0]);
$el.slideToggle();
你可以使用jQuery检查CSS规则,你知道......
var elDisplay = $el.css("display"); // "none", "block", "inline-block" ...
因为我看到你已经使用了jQuery ......不需要它,但它意味着让你的生活更轻松 - 所以而不是var d = document.getElementsByClassName('.level4_class');
使用
var $el = $('.level4_class');
完成了您可以从.css()
方法回调中访问所需的CSS属性:
$el.css("display", function(index, displayValue){ // Iterates over all .level4_class el.
if( displayValue==="block") { // ...checking for "block" value
// do something using $(this)
}
});
<强> jsbin demo 强>