2013-04-24 40 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