具有ELSE条件的jQuery函数

时间:2013-04-15 17:47:02

标签: jquery

这是一个jQuery大师的简单问题。

你可以找到HERE

的工作小提琴

如您所见,有一个容器id="hideme"。我希望当我点击link2id隐藏时,但条件是当我点击link1link3时,它必须再次显示。

所以我认为它必须是} ELSE {或者在jQuery中是不可能的?

$('#link2').click(function(){
    if(jQuery('#link2').data('clicked')) {
        $('#hideme').hide();
    } else {
        $('#hideme').show();
    };
});

5 个答案:

答案 0 :(得分:2)

您的click听众仅附加到#link2。您想要检测何时单击任何链接,然后进行测试。像这样:

$('a').click(function(){
    if(this.id === 'link2') {
        $('#hideme').hide();
    } else {
        $('#hideme').show();
    };
});

答案 1 :(得分:0)

无法通过将事件绑定到“#link2”来完成,但可以通过两种不同的方式完成:

$('#link2').click(function(){
    $('#hideme').hide();
});

$('#link1, #link3').click(function(){
    $('#hideme').show();
});

$('ul a').click(function() {
    if ($(this).attr('id') == 'link2') {
        $('#hideme').hide();
    }
    else {
        $('#hideme').show();
    }
});

答案 2 :(得分:0)

您需要绑定单独的事件:

$('#link2').click(function() {
    $('#hideme').hide();
});

$('#link1, #link3').click(function() {
    $('#hideme').show();
});

我实际上会让link1和link3有一个共同的类,使选择“更简单”。

答案 3 :(得分:0)

您需要将click事件绑定到所有链接并在handler中应用条件。

<强> Live Demo

$('[id^=link]').click(function () {    
    if (this.id == 'link2') $('#hideme').hide();
    else if (this.id == 'link1' || this.id == 'link2') $('#hideme').show();
});

答案 4 :(得分:0)

没有必要以这种方式使用else语句,因为jQuery在事件绑定中非常具有隧道视觉效果。将某些事件绑定到某个元素,这将会发生。如果您希望在另一种情况下发生其他事件,只需将其定义为此类事件即可。也就是说你可以在jQuery中使用javascript语句,如下所示:

if(x = 0)
{
    $("div").hide();
} 
else
{
    $("div").show();
}

但在这种情况下,您使用逻辑运算符来对抗某些外部变量。绑定事件时,这是完全没必要的。试着看看toggle()功能。这是一个简单的例子:

$("#id").click(function() {
    $("#MyDiv").toggle();
});