2016-08-17 37 views
0

我有一个页面,其中,如果用户选择一个选项,它会显示一个div.The脚本工作,当用户选择d除了巨大的消失(显示,B,C)和然后选择另一个选项,如a。这将删除一个但显示b和c。我的问题是,如果用户选择c然后选择a,脚本不应该删除一个选项。已切换div的所有时,一个选择

以下是脚本。 div的ID是“一个盒子”,“两个盒子”和“三个盒子”。它的小提琴是在这里:https://jsfiddle.net/bcLuo0bg/8/和现场版本在这里一起玩:http://warranty.2-10.com/TestforYou

<script type="text/javascript"> 
$(document).ready(function(){ 
$('input[type="checkbox"]').click(function(){ 
    if($(this).attr("id")=="a"){ 
     $(".one").toggle(); 
    } 
    if($(this).attr("id")=="b"){ 
     $(".two").toggle(); 
    } 
    if($(this).attr("id")=="c"){ 
     $(".three").toggle(); 
    } 
    if($(this).attr("id")=="d"){ 
     $(".box").toggle(); 
    } 

}); 
}); 
</script> 
+2

请在您的问题中发布[mcve]。 – j08691

+0

请发布HTML。 – Santi

+0

完整的LP可以看到她:http://warranty.2-10.com/TestforYou – JasonJSR

回答

1

最简单的方法是在执行您想要

$('input[type="checkbox"]').click(function(){ 
    $(".box").hide(); 
    if($(this).attr("id")=="a"){ 
     $(".one").toggle(); 
    } 
    if($(this).attr("id")=="b"){ 
     $(".two").toggle(); 
    } 
    if($(this).attr("id")=="c"){ 
     $(".three").toggle(); 
    } 
    if($(this).attr("id")=="d"){ 
     $(".box").toggle(); 
    } 

}); 
+0

我会把$(“。box”)。hide();在if部分之外(但仍然在onclick事件中) - 这样你只需要将它包含一次作为onclick事件,而不是在每个有条件的块中包含它 – gavgrif

+0

你是对的XD –

0

我会把$什么才可以隐藏所有的( “.box的”)隐藏();在onclick回调之外,首先隐藏所有的div。

0

.box { display: none; }添加到您的CSS文件中。通过CSS进行隐藏通常比使用jQuery/javascript更有效,因为CSS首先加载。 jQuery/JavaScript必须等待DOM完成加载。

+0

我有.box作为'display:none '在CSS中。如果我删除了建议的代码:'$(“。box”)。hide();',并且用户选择a,b,c然后d,代码将删除所有框。这基本上是我的问题 – JasonJSR