2016-03-18 94 views
-3

切換知名度與jQuery

function clickMe() { 
 
    $('.hidden').toggle(); 
 
    $('.visible').toggle(); 
 
}
.hidden { 
 
    visibility: hidden 
 
} 
 
.visible { 
 
    visibility: visible 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<label class='hidden'>HiddenLabel</label> 
 
<label class='visible'>VisibileLabel</label> 
 

 
<button onClick='clickMe()'>Click me</button>

這非常適用於可見的標籤,而不是隱藏的一個,因爲它切換「VisibleLabel」的visbility,但的知名度'HiddenLabel'保持不變(隱藏)。

回答

1

您正試圖交換類,而不是可見性。您應該使用.toggleClass

function clickMe() { 
    $('.hidden, .visible').toggleClass("hidden visible"); 
} 

片段

function clickMe() { 
 
    $('.hidden, .visible').toggleClass("hidden visible"); 
 
}
.hidden { 
 
    visibility: hidden 
 
} 
 
.visible { 
 
    visibility: visible 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<label class='hidden'>HiddenLabel</label> 
 
<label class='visible'>VisibileLabel</label> 
 

 
<button onClick='clickMe()'>Click me</button>

其原因是,該功能.toggle()單獨可以做你正在嘗試做的事情,但現在你需要切換類而不是元素。

0

jQuery.toggle()更改css屬性display

不是 css屬性visibility

嘗試,而不是:

.hidden { 
    display: none; 
} 

.visible { 
    display: block; 
} 
+0

我不認爲OP需要這個,是嗎?你明白這個問題嗎? –

+0

@PraveenKumar。從OP:_這適用於可見標籤,但不適用於隱藏的標籤._我解釋了爲什麼它不起作用。你認爲我錯了嗎? –

+0

'嘗試而不是'部分是錯誤的。他期待:http://i.imgur.com/1RAh0gZ.png –