Javascript 在jQuery中隐藏和显示元素
我有一些菜单对象,这里是“link1”和“link2”,我想在我的网页上切换一些内容(表单) 如果form1可见,我单击link2,我希望form1关闭,form2打开 相关jQuery:Javascript 在jQuery中隐藏和显示元素,javascript,jquery,Javascript,Jquery,我有一些菜单对象,这里是“link1”和“link2”,我想在我的网页上切换一些内容(表单) 如果form1可见,我单击link2,我希望form1关闭,form2打开 相关jQuery: $('#link1').click(function(){ $('#form1:visible').hide(); $('#form2:visible').hide(); $('#form1:hidden').show(); }); $
$('#link1').click(function(){
$('#form1:visible').hide();
$('#form2:visible').hide();
$('#form1:hidden').show();
});
$('#link2').click(function(){
$('#form1:visible').hide();
$('#form2:visible').hide();
$('#form2:hidden').show();
});
问题:
我怎样才能使这更简单 您可以使用在可见和隐藏状态之间切换元素的功能:
var f1 = $('#form1'), f2 = $('#form2');
$('#link1').click(function(){
f1.toggle();
f2.hide();
});
$('#link2').click(function(){
f1.hide();
f2.toggle();
});
否则,缓存两个#表单
选择器将有助于使其稍好一些 您可以使用在可见和隐藏状态之间切换元素的功能:
var f1 = $('#form1'), f2 = $('#form2');
$('#link1').click(function(){
f1.toggle();
f2.hide();
});
$('#link2').click(function(){
f1.hide();
f2.toggle();
});
$('#link1').click(function(){
$('#form2').hide();
$('#form1').show();
});
$('#link2').click(function(){
$('#form1').hide();
$('#form2').show();
});
否则,缓存两个#表单
选择器将有助于使其稍好一些
$('#link1').click(function(){
$('#form2').hide();
$('#form1').show();
});
$('#link2').click(function(){
$('#form1').hide();
$('#form2').show();
});
很难再简单了。如果单击的链接与表单之间存在任何关联,如名称中的1
和2
,则可以将其压缩为单个函数,动态获取正确的表单并显示它。。。但这是否更简单仍有争议:
$('#link1, #link2').click(function () {
$('form').hide();
$('#form' + this.id.substr(-1)).show();
});
很难再简单了。如果单击的链接与表单之间存在任何关联,如名称中的1
和2
,则可以将其压缩为单个函数,动态获取正确的表单并显示它。。。但这是否更简单仍有争议:
$('#link1, #link2').click(function () {
$('form').hide();
$('#form' + this.id.substr(-1)).show();
});
你可以给他们一个匹配的类,但这很简单 你可以给他们一个匹配的类,但这很简单 在HTML中:
<form id="form1" class="form_group1" ... >
<form id="form2" class="form_group1" ... >
...
<form id="formN" class="form_group2" ... >
在HTML中:
<form id="form1" class="form_group1" ... >
<form id="form2" class="form_group1" ... >
...
<form id="formN" class="form_group2" ... >
我不知道我是否理解正确,但您有href链接,因此当您单击link2时,您希望打开form2(如果尚未打开),link1和form1的过程相同吗 你能做的是为每个表单提供一个css类和一个id,然后:
$('#link1')。单击(函数(){
$('#idOform1').css(“显示”、“块”);
$('#idOform2').css(“显示”、“无”);
});
$('#link2')。单击(函数(){
$('#idOform2').css(“显示”、“块”);
$('#idOform1').css(“显示”、“无”);
});
我不知道我是否理解正确,但您有href链接,因此当您单击link2时,您希望打开form2(如果尚未打开),link1和form1的过程相同吗
你能做的是为每个表单提供一个css类和一个id,然后:
$('#link1')。单击(函数(){
$('#idOform1').css(“显示”、“块”);
$('#idOform2').css(“显示”、“无”);
});
$('#link2')。单击(函数(){
$('#idOform2').css(“显示”、“块”);
$('#idOform1').css(“显示”、“无”);
});
使用切换
可能会得到非常不同的行为。如果你点击链接两次怎么办?@deceze哦,我明白为什么代码与他给出的代码不同。这是一种相当迂回的方法,是的,使用切换
可能会得到非常不同的行为。如果你点击链接两次怎么办?@deceze哦,我明白为什么代码与他给出的代码不同。这是一个相当迂回的方法,是的。你能启发我吗?你能启发我吗?