2009-11-23 61 views
1

在jQuery代码中,我动态地显示和隐藏了一些内容。jquery中的hide()

  if (this.hide()) { 

       this.show(); 
           } 
      else { 
       alert("Hello"); 
       this.hide(); 

      } 

但是其他部分永远不会被执行。为什么?

回答

4

我会做这样的事情:

if($(this).is(':hidden')) { 
    $(this).show(); 
} 
else { 
    $(this).hide(); 
} 

还是取决于你想要做什么,你可以尝试toggle()

+3

在大多数情况下,我会选择切换选项。 – Kezzer 2009-11-23 12:15:45

0

在如果你是hidding的元素。 你应该做this.is(“:隐藏”)

2

你在找什么是

this.toggle(); 

你永远达不到你的“其他”条款的原因是因为hide()返回找到的元素选择器(用于方法链接原因)。因为它总是会返回一个有效的对象,它会永远解析为“truthy”,即不null, "", 0, false

1

this.hide()正在运行的隐藏功能,没有检查,如果它是隐藏的,因此它是将其设置为隐藏,然后运行this.show()

已经说过toggle()是你想要的,因为它为你做了检查,而不必为此编码。