2013-03-07 93 views
0

我有一個小的/(奇怪的?)與一些基本的jQuery問題。內部的HTML表單我有兩個要素:jQuery添加/刪除類只能工作一次

<label for="service-webdesign"> 
    <input type="checkbox" name="service-web" id="service-webdesign" value="Webdesign" /> 
    <span id="service-webdesign-span">Webdesign</span> 
</label> 
<label for="service-SEO" title="Search Engine Optimization"> 
    <input type="checkbox" name="service-web" id="service-SEO" value="SEO" /> 
    <span class="service-SEO-span">SEO</span> 
</label> 

現在,我想要做的就是添加/刪除一個名爲「主動」的風格這兩種因素的不同,他們被擊中時類。這裏是jQuery實現:

$('#service-webdesign').click(function(){ 
    if($('#service-webdesign-span').hasClass('active')){ 
     $('#service-webdesign-span').removeClass('active') 
     } else ($('#service-webdesign-span').addClass('active')) 
    }); 

$('#service-SEO').click(function(){ 
    if($('#service-SEO-span').hasClass('active')){ 
     $('#service-SEO-span').removeClass('active') 
     } else ($('#service-SEO-span').addClass('active')) 
    }); 

雖然他們都相同(功能明智),只有第一個按預期工作。我相信這與它們的順序沒有任何關係,因爲交換jQuery並沒有什麼區別。我只是在昨天才開始使用jQuery,所以我可能缺乏查看這種行爲的能力。

任何幫助將不勝感激!

+2

'服務SEO-span'是一類,但'服務的網站設計,span'都是一個ID,就好像它們是IDS你的目標他們倆。 – JJJ 2013-03-07 08:41:01

+0

嗨,非常感謝。我現在可以看到 - 再次感謝:) – Severin 2013-03-07 08:42:09

+0

從下次開始,請使用'jsfiddle',並附上您的問題 – arjuncc 2013-03-07 08:45:43

回答

1

您應該使用toggleClass

你應該使用正確的選擇爲Juhana在評論中已經提到過!

$('#service-webdesign-span').toggleClass('active'); 
+0

謝謝你的幫助!我去做。 – Severin 2013-03-07 08:44:56

1

服務SEO跨度是一類,但服務的網頁設計跨度都是一個ID,都好像他們是IDS你針對他們。