2012-03-28 117 views
1

我用一个脚本讨论:https://wordpress.stackexchange.com/a/14711/14649jQuery的切换()问题

它的伟大工程,但是当我选择一个不同的无线输入,原箱不切换关闭(坏),但新框确实出现(好)。这发生在我添加的任何附加框上。

jQuery不是我的东西,我一直在研究,没有运气!这里是我的代码:

<script type='text/javascript'> 
jQuery(document).ready(function($) { 
     $('#feature_box').hide(); 
     $('#standard_lead').hide();    

     // one box 
     $('#value_feature_box').is(':checked') ? $("#feature_box").show() : $("#feature_box").hide(); 
     $('#value_feature_box').click(function() { 
      $("#feature_box").toggle(this.checked); 
     }); 

     // second box 
     $('#value_standard_lead').is(':checked') ? $("#standard_lead").show() : $("#standard_lead").hide(); 
     $('#value_standard_lead').click(function() { 
      $("#standard_lead").toggle(this.checked); 
     }); 
    }); 
</script> 

感谢您的参观!

+0

你可以发布相关的HTML吗? – 2012-03-28 23:39:54

+0

你可以添加你的标记,什么是'feature_box'?它是一个div吗?此代码可以使用类来代替id的模块化。 – 2012-03-28 23:42:07

回答

0

其他盒子不消失的原因是因为你没有告诉它!

$('#value_feature_box').click(function() { 
    $("#feature_box").toggle(this.checked); 
}); 

这说的是当您点击#value_feature_box时切换#feature_box的可见性。如果#value_feature_box不是复选框,则将内部代码更改为$("#feature_box").toggle();。如果你想要的东西消失为好,然后告诉它:

$('#value_feature_box').click(function() { 
    $("#feature_box").toggle(); 
    $("#standard_lead").toggle(); 
}); 

价值上的切换内部()括号内告诉它要么出现或消失(true或false)。

+0

感谢您的意见。这是我想出来的解决方案,但它非常笨重,因为我将有大约10个盒子,而且我觉得使用'$(“#box_id”)。toggle();'可能会变得单调乏味......所以我将其分配给每个框以简化它。谢谢! – 2012-03-29 15:44:16

0

您切换只有一个点击框 - 你需要切换两种,看到这样的jsfiddle:

有了这个(和其他盒子类似):

$('#value_feature_box').click(function() { 
     $("#feature_box").toggle(this.checked); 
    }); 

你基本上是说 - 点击时(因此this.checked将始终为真),切换元素。从文档:

您使用切换的版本有showOrHide参数总是传递true,所以总是显示,只有被点击的复选框。

+0

感谢您的意见。这是我想出来的解决方案,但它非常笨重,因为我将有大约10个盒子,而且我觉得使用'$(“#box_id”)。toggle();'可能会变得单调乏味......所以我将其分配给每个框以简化它。谢谢! – 2012-03-29 15:44:59