在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.不用担心,巴德,很高兴它有帮助!