Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jQuery中隐藏和显示元素_Javascript_Jquery - Fatal编程技术网

Javascript 在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”和“link2”,我想在我的网页上切换一些内容(表单)

如果form1可见,我单击link2,我希望form1关闭,form2打开

相关jQuery:

    $('#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哦,我明白为什么代码与他给出的代码不同。这是一个相当迂回的方法,是的。你能启发我吗?你能启发我吗?