2013-01-23 70 views
0

我需要當我點擊切換爲jQuery刪除.hidesome並將其更改爲.show和反之亦然。Jquery addRemove類 - 如果語句

不能得到這個......已經過了4個小時的搜索。

<a href="#" class="button">Toggle</a> 
<div class="signatureContain"> 
<div class="signature hidesome"> 
    When the button above is pressed you should see the rest<br /> 
    "the rest" 
</div> 
</div> 

<a href="#" class="button">Toggle</a> 
<div class="signatureContain"> 
<div class="signature hidesome"> 
    When the button above is pressed you should see the rest<br /> 
    "the rest" 
</div> 
</div> 


('.signatureContain').live('click',function(){ 
     if ($(this).hasClass('hidesome')) 
     { 
     $(this).removeClass('hidesome'); 
     $(this).addClass('show'); 
     } else 
     { 
     $(this).removeClass('show') 
     $(this).addClass('hidesome'); 
     } 
}); 


.hidesome{ height:20px;overflow:hidden} 
.show{ height:auto } 

http://jsfiddle.net/w3Hg3/

+0

在jQuery 1.7,的'.live()'方法已被棄用。使用'.on()'附加事件處理程序。老版本的jQuery用戶應該使用'.delegate()'而不是'.live()'。 –

+0

[jQuery.toggleClass()](http://api.jquery.com/toggleClass/) – Peter

+1

您也在選擇器的開頭缺少$:$('。signatureContain') –

回答

1

使用toggleClass方法。

$('.signatureContain').on('click', function(event){ 
    $(this).toggleClass("hidesome show"); 
}); 
2

您可以使用.toggleClass,但我覺得你有點過了很多你的代碼的其餘部分。代替與.signatureContain綁定,您可能想要綁定到.button並找到兄弟.signatureContain,然後是其子.signature子。你也錯過了$。我定的是在這裏:

http://jsfiddle.net/w3Hg3/3/

.toggleClass版本:http://jsfiddle.net/w3Hg3/5/

+0

'live()'已棄用 – Peter

+0

這太棒了!謝謝! – DFakdkmnadDlakdkd

+0

我試過()和委託()。都沒有工作。更新代碼: http://jsfiddle.net/w3Hg3/6/ – DFakdkmnadDlakdkd