2011-10-05 42 views
0

這是問題所在。我有一個複選框,當我選擇它時應該出現一個圖像,所以div元素最初是隱藏的。它不會工作。它起作用時,div是可見的開始。但在這種情況下,如果我選擇複選框,圖像將消失,當我取消選中複選框時,圖像將會顯示。我想完全相反。解決方法是在頁面加載時檢查複選框,但這是不可接受的。當頁面加載時,應該取消選中複選框並隱藏圖像。jQuery:fadeToggle()和複選框

<div id="pic1Div"> 
<img src=pic1.jpg> 
<br> 
This should be visible when checkbox is checked 
<br>It does exactly the opposite 
</div> 
<form> 
Show Picture <input type=checkbox name="pic1"> 
</form> 
<script> 
$(':input[name="pic1"]:first').click(function() { 
$('div[ID="pic1Div"]:first').fadeToggle("slow", "linear"); 
}); 
</script> 

Here's the source code

回答

0

不要使用visibility: hiddenfadeToggle作品與display:none

http://jsfiddle.net/mYpsF/

+0

在一個側面說明,我在評論我把,因爲它是不是真的涉及到的問題,使用'$(」 #pic1Div')'按ID選擇。 ID始終是唯一的,所以':first'不需要,'#'用於ID選擇,所以你不需要'[ID ='。 –

+0

非常感謝。幸運的是,解決方案很簡單。我只發現了一小時半之前的JQuery。我找到了一個樣本並試圖理解它。它感覺直觀,所以編輯它以適應我的需要,因此我的代碼中的$('div [ID =「pic1Div」]:''')行。 – Tauno

1

只是要複選框初步遏制,如果圖像是可見的,還是讓最初隱藏圖像和複選框選中。

看到一個example與最初隱藏的圖像。

和一個example與最初顯示的圖像。


在一個單獨的說明,有一個原因,你正在使用的屬性選擇通過 id選擇一個元素,而不是 id選擇:

$('#pic1Div')

而且因爲你只能有一個元素任何給定的id,您都不需要:first僞選擇器。