2010-06-24 74 views
0

我有一個按鈕數組,當點擊時,打開或關閉我的網站上的內容。我需要能夠跟蹤哪一個是開放的,以便當我再次點擊該按鈕時,我將知道是否關閉內容。點陣語法變量到陣列

這裏是我的數組:

var imageOptions = ['.corporateNeeds', '.marketResearch', '.corpStrategic', '.employeeTraining', '.administration', '.wellnessManagement']; 

而且一旦你點擊一個按鈕,將打開的內容。

var options = ['.option1', '.option2', '.option3', '.option4', '.option5', '.option6']; 

然後,我遍歷數組,並顯示哪一個的含量點擊:

jQuery.each(imageOptions, function (k) { 
    $(imageOptions[k]).click(function() { 
     hideOptions() 
     $(options[k]).fadeIn(); 
     $(options[k].contentOpen) = true; 
    }); 

}); 

我想知道的是,如果有一個由點跟蹤當前點擊的按鈕的方法語法化變量即($(options [k] .contentOpen)= true;)到該數組按鈕上。我知道這可以在AS中完成,但我需要知道如何在jQuery中執行此操作。

感謝;)

回答

2

我不知道你要完成什麼,但我假設你需要保持狀態,爲每個按鈕(開/關),所以你知道,如果你需要打開或關閉關聯的內容框。

對於這一點,你可以使用數據()函數的jQuery:

jQuery.each(imageOptions, function (k) { 
    $(imageOptions[k]).click(function() { 
     if ($(this).data("open") == "true") { 
      // hide content 
      $(this).data("open","false"); 
     } else { 
      // show content 
      $(this).data("open","true"); 
     } 

    }); 
}); 
+0

太棒了,喜歡它!謝謝丹! – 2010-06-24 09:57:24

2

你爲什麼不使用.data()存儲值?

例如

$('button').click(function(){ 

    if ($('div#window').data('contentOpen')) { 
     // means open 
     $('div#window').data('contentOpen',false); // set it to close 
     // do something here 
    } else { 
     // means close 
     $('div#window').data('contentOpen',true); // set it to open 
     // do something here 
    } 


}) 
+0

非常感謝Reigel。我不知道數據選項! – 2010-06-24 09:40:43

+0

我很樂意幫忙..;) – Reigel 2010-06-24 09:43:06

0

可以創建化名對象數組來完成此例如

var imageOptions = ['.corporateNeeds', '.marketResearch', '.corpStrategic', '.employeeTraining', '.administration', '.wellnessManagement']; 
var options = [{ selector: ".option1", contentOpen: false }, { selector: ".option2", contentOpen: false }, { selector: ".option3", contentOpen: false }]; 



jQuery.each(imageOptions, function (k) { 
    $(imageOptions[k]).click(function() { 
     hideOptions() 
     $(options[k].selector).fadeIn(); 
     options[k].contentOpen = true; 
    }); 

}); 
+0

所以,你可以點變量的數組,然後呢?酷,但我今天用jQuery的數據()學到了一些新東西;) 謝謝Marc – 2010-06-24 09:59:28

+0

@sixfoot是的,因爲你的變量不僅僅是一個字符串,而是一個對象。當然jquery.data()是你的情況下更好的解決方案。 – 2010-06-24 10:11:41