2013-04-24 20 views
0

我會做它不同,但我編輯YUI代碼,並試圖不混合和匹配。使用YUI.all檢查類和添加類jQuery中的

我有一個這樣的HTML項目:

<div class="market"> 
    <button class="area1 region03 optionSelected" data-type="market" data-vendor="1">Tulsa</button> 
    <button class="area1 region03" data-type="market" data-vendor="1">Houston</button> 
    <button class="area1 region03" data-type="market" data-vendor="1">Kansas City</button> 
</div> 
<div class="region"> 
    <button class="area1 region03" data-type="region" data-vendor="1">Midwest</button> 
</div> 

可能的選項是,它具有類optionSelected或preOptionSelected的。如果我直接點擊它,它會被選中,我不想要其他任何東西來打擾它。但是,如果我點擊另一個按鈕,它需要測試它(以及同一數據類型中的所有其他按鈕)是否在該類中有selectSelected選項。

現在,我用下面來preOptionSelected適用於所有的按鈕在數據類型:

VZW.all('.region03').addClass('preOptionSelected'); 

這增加了類preOptionSelected但我想它來測試optionSelected第一。我也正在遷移到每個地區和地區的數據 - 我如何測試這些數據?

回答

0

我的編輯被吃掉了。你可以簡化你的支票到

if (subNode.getData('region') === node.getData('region') 
     && !subNode.hasClass('selectorButton')) { 
    subNode.addClass('preOptionSelect'); 
} 

但你在那裏有合理的慣用YUI3,所以如果它的工作,去吧!

+0

是的 - 我需要它通過一堆亂七八糟的按鈕(一些選項卡將保存超過30個)分類爲「市場」,「區域」和「區域」。每個基於區域或區域觸發組。它一團糟,我無法弄清楚這個人是如何在我面前做的,所以我決定去讀舊學。最終我將它作爲比YUI3更好的選項遷移到純jQuery。謝謝你的幫助。 – jbolanos 2013-04-25 16:38:41

+0

不客氣。順便說一句,如果你在遷移之前有更多的YUI3問題,請在freenode.net上嘗試#yui IRC頻道 - 那裏的人很有幫助。另請參閱http://jsrosettastone.com,它將常見的jQuery和YUI3調用映射到彼此。 – Evan 2013-04-26 18:51:19

+0

我決定消滅YUI3,轉而使用jQuery :) – jbolanos 2013-04-29 05:32:58

0

OK,因爲我學習YUI3(舊代碼),我花了一點弄明白:

VZW.all('.market button').each(function(subNode){ 
    if (subNode.getData('region') == node.getData('region')) { 
     if (subNode.hasClass('selectorButton') { 
      return false; 
     } else { 
      subNode.addClass('preOptionSelect'); 
     } 
    } 
}); 

,如果有更好的方法,我很高興聽到這個消息,但是這一切都將得到在接下來的幾個月內轉移到jQuery工作。

+0

你可以簡化爲: – Evan 2013-04-25 16:13:50

+0

你是什麼意思'喜歡:'? – jbolanos 2013-04-25 16:27:22

+0

對不起,我開始打字,然後在意外返回時,然後意識到我的回覆將顯示爲更完整的答案。 :) 往上看。 – Evan 2013-04-25 16:35:17