在javascript中绑定大量对象的可见性。管理当前状态

在javascript中绑定大量对象的可见性。管理当前状态,javascript,jquery,html,asp.net-mvc-4,Javascript,Jquery,Html,Asp.net Mvc 4,我正在写一个网站,用户可以点击按钮启动。 根据他们按下的按钮,页面上将出现一个新的部分。 此部分中有更多按钮-点击其中一个按钮,将出现几个部分中的一个 我的代码开始变得非常冗长和混乱 因此,我一直在寻找一种更干净/更好的方法来管理任何时候都需要可见的内容 我想避免安装像angular/react/knockout这样的东西,因为在一个大型(ish)网站上,仅仅一个页面似乎就需要很大的开销。所以理想情况下,只需裸javascript或jquery 但我也希望避免页面和javascript页面充满$

我正在写一个网站,用户可以点击按钮启动。
根据他们按下的按钮,页面上将出现一个新的部分。
此部分中有更多按钮-点击其中一个按钮,将出现几个部分中的一个

我的代码开始变得非常冗长和混乱

因此,我一直在寻找一种更干净/更好的方法来管理任何时候都需要可见的内容

我想避免安装像angular/react/knockout这样的东西,因为在一个大型(ish)网站上,仅仅一个页面似乎就需要很大的开销。所以理想情况下,只需裸javascript或jquery

但我也希望避免页面和javascript页面充满$('div1')。show()$('div2').hide()
etc
而且要管理好所有这些问题变得越来越困难

我制作了一把小提琴,希望你能看到我想要完成的东西(只完成了大约1/5,但看起来已经一团糟):

但目前基本上是这样的:

<div name="Group1">
  <input name="group1" type="radio" id="btn1" />
  <span>1</span>           

  <input name="group1" type="radio" id="btn2" />
  <span>2</span> 
<div>

<div name="group2">
<div id="div_btn1" style="display:none">
      <input name="group2" type="radio" id="btn1_1" />
      <span>1_1</span>

      <input name="group2" type="radio" id="btn1_2" />
      <span>1_1</span>
</div>
</div>

<script>
$(function () {
        $('#btn1').change(function() {

            if ($('#btn1').is(':checked')) {
                $('#div_btn1').show();
                $('#div_btn1_1').hide();
            }
        });
</script>

1.
2.
1_1
1_1
$(函数(){
$('#btn1')。更改(函数(){
如果($('#btn1')。是(':checked')){
$('div_btn1')。show();
$('#div_btn1_1').hide();
}
});
我正在与MVC合作,如果有任何一种方法可以用来帮助建立数据模型的话(我猜不太可能,但只是把它扔出去)


我缺少任何解决方案吗?

为什么不尝试使用一个由所有按钮共享的类来触发js,并使用一个数据属性来通知js要显示的内容的div

沿着这些路线的东西,例如:

<div class="content-block" id="content1">
Content 1
</div>

<div class="content-block" id="content2">
    Content 2
</div>

<button class="content-button" data-content-block="content1" value="content 1"></button>

<button class="content-button" data-content-block="content2" value="content 2"></button>

<script>
$(function () {

    $(".content-block").hide();

   $(".content-button").click(function() {

         $(".content-block").hide();

        var contentBlock = $(this).attr("data-content-block");

        $("#" + contentBlock).show();
   });

});
</script>

内容1
内容2
$(函数(){
$(“.content块”).hide();
$(“.content按钮”)。单击(函数(){
$(“.content块”).hide();
var contentBlock=$(this.attr(“数据内容块”);
$(“#”+contentBlock.show();
});
});

是不是每个按钮都要显示一个部分(在这种情况下,您可以将
数据
属性与按钮与相关的
关联起来,因此只有一个简单的脚本)谢谢,这可能为我节省了几百行冗余javascript。跟踪起来也容易多了。@jb.不用担心,巴德,很高兴它有帮助!