2013-03-12 47 views
4

我需要用jQuery來知道我的頁面上的某個元素是否已經切換。jQuery,檢測一個元素是否已經切換

我有一個XXX元素的菜單。

當我點擊一個元素,我使用:$("#elementXX").slideToggle("slow");(XX是一個數字)

如果我在另一元件上點擊,我需要知道,如果一個元素已經切換了,我需要關閉這個元素之前滑動切換我的新元素。

我該怎麼做?我不能通過像#element1,#element2,#element3等id這樣的id來檢查id ...

謝謝!

+1

您可以無條件地''.slideUp()'元素,而無需測試其當前狀態。 – 2013-03-12 09:48:51

回答

2

你不需要切換,slideUpslideDown是爲您的方案更加適合。您可以簡單地執行:

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

您可能需要'.stop()。slideUp()',以防元素在前一個事件的動畫中被捕獲。 – 2013-03-12 10:00:52

+1

@甜菜根 - 甜菜根好喊,補充:) – mattytommo 2013-03-12 10:01:22

+0

是的,但有了這個解決方案,我不能關閉我的元素,當我reclick – 2013-03-12 10:04:21

3

您可以將數據屬性設置爲某個值以確定是否切換。您可以在HTML中添加屬性或直接使用腳本添加。

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

我會建議添加一個數據切換的屬性元素,爲可搜索性。 – Rodik 2013-03-12 09:48:08

相關問題