0

tap我在事件绑定中有以下元素处理。

 $el
   .doThis
   .end()
   .find( "a" ).first().removeClass( someClass );

我需要检查条件o.direction == "horizontal",如果条件为真,我需要toggle代替remove

但是我无法让它工作。像这样尝试:

 $el
   .doThis
   .end()
   .find( "a" ).first().toggleClass( someClass , ( o.direction == "horizontal" ? !isCollapse : event ) );

如果 正确切换课程o.direction == "horizontal",但如果不是,我不能remove代替toggle.

问题:
有没有办法检查条件并执行toggleif 条件满足和removeClassif not in a chained jquery 语句?

4

3 回答 3

1

为了解决我不确定运行时元素状态是什么的问题,并且很难有一个具有该状态的变量,我通常使用数据属性,然后让代码管理它们。

<div data-direction="horizontal">

进而

if(element.getAttribute("data-direction") == "horizontal")
{
 //TODO: remove or toggle
}

管理状态

element.setAttribute("data-direction","state");
于 2012-09-11T19:08:22.797 回答
1
$el
   .doThis
   .end()
   .find( "a" ).first()[o.direction == 'horizontal' ? 'toggleClass':'removeClass']( someClass )
于 2012-09-11T19:13:02.190 回答
1

event对象不应在else条件下使用。您应该false改用:

.toggleClass( someClass , ( o.direction == "horizontal" ? !isCollapse : false ) )

这意味着如果o.direction == "horizontal",css 类将根据isCollapse值进行切换。否则,css 类将被删除。

于 2012-09-11T19:13:15.163 回答