jQuery,检测元素是否已经切换

时间:2013-03-12 09:45:54

标签: jquery toggle

我需要使用jQuery来了解我页面上的元素是否已经切换。

我有一个包含XXX元素的菜单。

当我点击一个元素时,我使用:$("#elementXX").slideToggle("slow");(XX是一个数字)

如果我点击另一个元素,我需要知道一个元素是否已经切换,我需要先关闭这个元素才能滑动我的新元素。

我该怎么做?我无法通过id检查ID,如#element1,#element2,#element3等....

谢谢!

3 个答案:

答案 0 :(得分:3)

您可以将数据属性设置为某个值,以了解它是否已切换。您可以在html中添加属性或直接使用脚本添加。

$("#elementXX").data("toggled", "true"); 

答案 1 :(得分:3)

您无需切换,slideUpslideDown更适合您的方案。你可以这样做:

$("#clickedItem").click(function () {
    var wasVisible = $("#elementXX").is(":visible");
    $("[id^=element]:visible").stop().slideUp("slow");
    if (!wasVisible) {
        $("#elementXX").slideDown("slow");
    }
});

答案 2 :(得分:1)

根据jQuery官方网站常见问题解答:

$("#toggleButton").click(function () {
   if ($("#elementXX").is(":visible")) {
      // toggled down
   }
   if ($("#elementXX").is(":hidden")) {
      // toggled up
   }
});

https://learn.jquery.com/using-jquery-core/faq/how-do-i-determine-the-state-of-a-toggled-element/