2012-07-28 38 views
1

我有多組Twitter Bootstrap checkbox groups。我想創建所有活動(即,Bootsrtap添加「活動」類)按鈕的散列,當任何一個複選框按鈕被點擊時。假設HTML是像這樣經過幾次點擊:創建一個在Twitter引導按鈕組之間激活的複選框按鈕的哈希點擊

<div id="horizontal" class="btn-group" data-toggle="buttons-checkbox"> 
    <button class="btn active" data-hposition="1">Left</button> 
    <button class="btn" data-hposition="2">Middle</button> 
    <button class="btn active"data-hposition="3">Right</button> 
</div> 
<div id="vertical" class="btn-group" data-toggle="buttons-checkbox"> 
    <button class="btn" data-vposition="1">Top</button> 
    <button class="btn active" data-vposition="2">Center</button> 
    <button class="btn active" data-vposition="3">Bottom</button> 
</div> 

我開始了簡單的只用一個DIV,但我沒有得到正確的結果:

<script> 
    $('#horizonatal').click(function(){ 
     var paramsHash = {}; 
     var hids = []; 
    $('.active').each(function() { 
     paramsHash.hids.push($(this).data('hposition')); 
    }) 
     console.log(paramsHash.hids);  
}) 
</script> 

使用上面的HTML,當我點擊「右」我在控制檯中得到類似[1,undefined]的東西。

最後,我想獲得一個哈希後像{ {'hids', [ 1, 3 ]}, {'vids', [ 2, 3, ]} }

我嘗試了jsfiddle,但我不認爲我在加載引導正確的東西,因爲我沒有看到這些按鈕會激活。

回答

0

這是因爲有您的數據屬性(用小提琴)錯別字,也可以選擇所有的.active類而不是那些屬於水平 DIV和他們沒有一個數據hposition屬性返回undefinded,請嘗試以下操作:

$('#horizontal').click(function(){ 
     var paramsHash = { 
       hids: [], 
      //vidz: [] 
      } 
    $('.active', this).each(function() { 
     paramsHash.hids.push($(this).data('hposition')); 
    // paramsHash.vidz.push($(this).data('classroom')); 
    }) 
     console.log(paramsHash);  
}) 

DEMO


請注意,他們是 按鈕標籤不是單選按鈕。

+0

謝謝你回答和排序通過我的混亂的問題。我更正了拼寫錯誤和錯誤的單選按鈕引用。 我正在嘗試構建複選框ID的散列。 – JHo 2012-07-28 16:22:00

+0

好的。現在我已經修復了我錯誤地引用單選按鈕的地方,我指的是複選框按鈕(包括其他錯誤),你能告訴我如何收集在一個組中點擊的所有複選框嗎?另外,是否有可能使它在jtfiddle上工作(即,Bootstrap複選框button.js刪除並添加活動類)? – JHo 2012-07-28 16:43:25

+0

@JHo歡迎您,何時收集數據?什麼樣的數據?目前你的標記沒有「複選框」。 – undefined 2012-07-28 16:50:26