如何在if语句(jQuery)中将事件指定为条件?

时间:2015-08-20 00:54:12

标签: javascript jquery

我正在使用导航栏。 我想检查一个slideUp()是否适用ul而不是if语句,如果已应用,那么我想在classToggle()上应用<span>在父li

HTML:

<li class="main"><span class="arrow-up"></span>
  <ul class="sub">
    <li>Item</li>
    <li>Item</li>
    <li>Item</li>
  </ul>
</li>

<li class="main"><span class="arrow-up"></span>
  <ul class="sub">
    <li>Item</li>
    <li>Item</li>
    <li>Item</li>
  </ul>
</li>

我使用以下代码在单击另一个时关闭活动子菜单并切换'arrow-up arrow-down'类但我想仅在子菜单滑动时才切换这些类,因此我想插入{{1}在.slideUp()语句中的事件,怎么做?

if

2 个答案:

答案 0 :(得分:0)

您可以在元素上使用.slideToggle()时为该元素添加一个类,并使用该类来检测元素是否被切换。

您也可以使用if ( $('.element').is(':visible') ) { //Do something

答案 1 :(得分:0)

如果正确解释问题?尝试使用complete.slideToggle()的{​​{1}}回调来选择最接近的.prev()元素

&#13;
&#13;
span
&#13;
$(".main").click(function() {
  var complete = function complete() {
    $(this).prev("span").toggleClass("arrow-up arrow-down");
  };

  $("ul", this).slideToggle("fast", complete)
  .promise()
  .then(function() {
    var elems = $("ul", ".main").not(this);
    if (elems.is(":visible") && $(this).is(":visible")) {
        elems.slideToggle("fast", complete);
    }
  });
});
&#13;
.arrow-down {
  color: blue;
}
.arrow-up {
  color: red;
}
&#13;
&#13;
&#13;