这是一个jQuery大师的简单问题。
你可以找到HERE
的工作小提琴如您所见,有一个容器id="hideme"
。我希望当我点击link2
此id
隐藏时,但条件是当我点击link1
或link3
时,它必须再次显示。
所以我认为它必须是} ELSE {
或者在jQuery中是不可能的?
$('#link2').click(function(){
if(jQuery('#link2').data('clicked')) {
$('#hideme').hide();
} else {
$('#hideme').show();
};
});
答案 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();
});