2010-01-31 79 views
4

我可以在JS中做到這一點,但我開始使用JQuery並希望爲此開發技能。在JQuery中切換可見性

我有一個提醒消息[#CheckboxReminder]「勾選此複選框以表示您已檢查您的數據」。

然後當勾選複選框[#IsConfirmed]時,我想要隱藏提醒消息,如果未勾選則將其恢復到原始狀態。

該頁面將呈現,提示信息設置爲可見或隱藏類;如果用戶最近將他們的數據標記爲「已檢查」,則該消息將被隱藏(但是,如果他們願意的話,歡迎用戶再次檢查該框)

我相信JQuery toggle()可以做到這一點,在#CheckboxReminder樣式被設置爲指示可見性的方式上,並且我還讀到Toggle()可能與#IsConfirmed不同步CheckBox - 例如快速雙擊。也許我應該有toggle(FunctionA, FunctioB)並有FunctionA設置複選框的狀態,並且FunctionB取消設置它 - 而不是讓Click來設置它?

什麼是最好的方式來編碼這個請嗎?

在這裏的情況下是有用的HTML可能看起來像一個例子:

<p>When the data above is correct please confirm 
    <input type="checkbox" id="IsConfirmed" name="IsConfirmed"> 
    and then review the data below</p> 
... 
<ul> 
<li id="CheckboxReminder" class="InitHide OR InitShow">If the contact details 
    above are correct please make sure that the CheckBox is ticked</li> 
<li>Enter any comment/message in the box above</li> 
<li>Then press <input type="submit"></li></ul> 
+0

這聽起來像你不想使用切換,但只是基於是否選中複選框來設置提醒的可見性。 – Thomas 2010-01-31 12:07:55

+0

TOGGLE()的吸引力在於它會記住初始狀態,並且第二次調用會重置爲(而不是僅顯示)。至少,這就是我認爲我讀過的那個toggle()! – Kristen 2010-01-31 12:27:41

回答

9

只是檢查複選框已顯示/隱藏消息之前確實變值。

$('#isConfirmed').click(
    function(){ 
    if ($(this).is(':checked')) 
     $('#CheckboxReminder').show(); 
    else 
     $('#CheckboxReminder').hide(); 
    } 
); 

以上將每次點擊複選框一次火災,但由於我們首先檢查複選框被選中確實與否就會避免誤報

+0

謝謝。那個SHOW #CheckboxReminder不會 - 即使它的初始狀態被隱藏了嗎? – Kristen 2010-01-31 12:19:26

+0

啊...現在已經閱讀了JQUERY DOC for'show'「[show()]大致等同於調用.css('display','block'),不同之處在於display屬性被恢復爲最初的」 。完善。 – Kristen 2010-01-31 12:34:40