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