2010-03-13 53 views
0

first see this post 之間我得到這個代碼問題與jQuery每SWICH 2個東西

$('.yesno').click(function(){ 
    $('.yesno').each(function(i, v){ 
     $(v).removeClass('selected'); 
    }); 
    $(this).addClass('selected'); 

    return false; 
}); 

和HTML此

<a href="#"> 
    <span class="Yes yesno">Yes</span> 
</a> 

<a href="#"> 
    <span class="No yesno">No</span> 

沒有當我做多張選票IAM得到非常大的問題的問題

看到這個

<a href="#"> 
    <span class="Yes yesno">Yes</span> 
</a> 

<a href="#"> 
    <span class="No yesno">No</span> 
</a> 
<a href="#"> 
    <span class="Yes yesno">Yes</span> 
</a> 

<a href="#"> 
    <span class="No yesno">No</span> 
</a> 
</a> 

當點擊第一個是它使選擇並點擊時,當IAM進入下一個是它的,因爲selected但首先是成爲unselected

我想要做一些薄使每個沒錯,知道是歧別人

回答

3

將你的html改爲這個(在鏈接組中添加div,可以是任何元素,或者你也可以在href上使用rel屬性)。

<div class="linkgroup"> 
    <a href="#"> 
     <span class="Yes yesno">Yes</span> 
    </a> 

    <a href="#"> 
     <span class="No yesno">No</span> 
    </a> 
</div> 

<div class="linkgroup"> 
    <a href="#"> 
     <span class="Yes yesno">Yes</span> 
    </a> 

    <a href="#"> 
     <span class="No yesno">No</span> 
    </a> 
</div> 

然後JS是這樣的:

$('.yesno').click(function(){ 
    $(this).parents('.linkgroup').find('.yesno').each(function(i, v){ 
     $(v).removeClass('selected'); 
    }); 
    $(this).addClass('selected'); 
    return false; 
}); 

(還有一個兄弟選擇jQuery的,這可能使代碼有點清潔,但不熟悉)。

+0

這真是效率的解決方案 – 2010-03-13 10:25:15

0
$('.yesno').click(function(){ 
    $(this).parents('.linkgroup').find('.yesno').each(function(i, v){ 
     $(v).toggleClass('selected'); 
    }); 
    $(this).toggleClass('selected'); 
    return false; 
});