在jquery代码中,我动态地显示和隐藏一些内容。
if (this.hide()) {
this.show();
}
else {
alert("Hello");
this.hide();
}但其他部分永远不会得到executed.why?
发布于 2009-11-23 20:12:56
我会这样做:
if($(this).is(':hidden')) {
$(this).show();
}
else {
$(this).hide();
}或者,根据您想要做的事情,您可以尝试toggle()
发布于 2009-11-23 20:14:00
你要找的是
this.toggle();您永远不会到达'else‘子句的原因是因为hide()返回在选择器中找到的元素(出于方法链接的原因)。因为它总是返回一个有效的对象,所以它将总是解析为"truthy",即不是null, "", 0, false,等等。
发布于 2009-11-23 20:19:16
this.hide()正在运行隐藏函数,而不检查它是否被隐藏,因此它将其设置为隐藏,然后运行this.show()
正如已经说过的,toggle()是您想要的,因为它可以为您做检查,而不必为此编写代码。
https://stackoverflow.com/questions/1782768
复制相似问题