if if条件下的jquery css()

时间:2013-03-31 14:12:26

标签: jquery css

我要做的是 IF 我点击span然后DIV中的某些元素逐渐消失, ELSE 再次点击该范围,这些元素将逐渐消失。 在那里,我还使用css()来更改DIV中剩余元素的某些样式。

查看HERE以查看代码。

现在有两个问题/问题:

  1. 是否有一些捷径或技巧可以使用css()的次数减少?

  2. 当我尝试在我的css()条件中使用else将样式值设为原始样式时,else条件中的所有样式都不起作用,因此新样式if条件中的值保持不变。

  3. 有任何更正或建议吗?

3 个答案:

答案 0 :(得分:3)

  

我想要做的是如果我点击span

  

然后span中的一些元素逐渐消失

... DIV淡出。

  

ELSE 您再次点击div

你有没有听过有人说'#34;然后你再次点击"?如果你不怎么说,你就不应该写它。

您尝试描述的内容是您第二次点击span时会发生什么。实际上并不重要span被点击的次数,span的状态至关重要。您所描述的内容可以追溯到点击跨度时会发生什么。

  

这些元素会逐渐消失。

所以你到目前为止所说的是:

单击某个范围时,请检查div是否可见; if ,淡出,其他,淡入。

  

我还使用css()来更改div中剩余元素的某些样式。

听起来你正在试图说的是你还使用jQuery的DIV方法设计了div。鉴于代码的状态,这似乎是(大多数情况下)的情况。

请勿使用css方法

当您绝对需要动态样式时,使用jQuery的css方法很有用。大多数时候,大多数人都不需要动态风格。大多数时候,大多数人都需要动态的样式。这些最好表示为应留在样式表中的类。 HTML属于css个文件,JS属于.html个文件,CSS属于.js个文件。

所以你真正想要的是在.css完成动画制作时更改一个(或多个)类。


所有这一切甚至没有编写任何代码。为了将它们联系在一起,这里通常是你想要做的事情:

div

答案 1 :(得分:1)

回答你问题的一部分:

您可以通过传递一个对象在一次调用中设置多个css属性(如the documentation所述 -

$(elem).css({
  'width':10px,
  'height':10px,
  ...
});

答案 2 :(得分:1)

当然您也可以在class添加#News并在CSS中应用所有样式

#News.closed {
    height: 45px;
    width: 200px;
    overflow: hidden;
}
#News.closed div {
    right: -10px;
}
#News.closed div label {
    font-size:12px;
    top: -14px;
}
}
#News.closed div label p {
    top: -15px;
    right: -20px;
}

演示:http://jsfiddle.net/pavloschris/7G3Z4/10/