Jquery的off click函数是什么?

6

这可能听起来像一个愚蠢的问题,但是我是否可以为离开点击事件设置一个别名呢?比如说,我现在有这样的代码:

$("#frame_left").click(function() {
    $("#navLeft").show();
});

当用户取消单选按钮的选择后,我希望隐藏#navLeft内容。


你是指 onmouseup 吗?还是说,点击元素或其子元素之外的任何内容。 - Kevin B
2
“Click off of” 究竟是什么意思?选择另一个单选按钮吗? - JJJ
给每个单选框添加一个类,为该类注册Click事件,并检查所需的单选框是否被选中? - Ant P
您可以将点击事件绑定到围绕单选按钮的容器上,以隐藏navLeft。 - scrappedcola
2个回答

5
添加整个文档的点击事件:
$(document).click(function(e) {
  $('#navLeft').hide();
});

那么在元素上停止传播,以使其不冒泡到文档:
$("#frame_left").click(function(e) {
  e.stopPropagation();
  $("#navLeft").show();
});

http://api.jquery.com/event.stopPropagation/


我已经有了这个 - $(document).ready(function(){ // 在此处检查单选按钮并显示/隐藏所需内容 $("#navLeft").hide(); $("#navRight").hide(); // 在此处添加onclick功能 $("#frame_left").click(function() { $("#navLeft").show(); }); $("#frame_right").click(function() { $("#navRight").show(); }); }); - Nat
这不适合在评论中格式化。请创建一个http://jsfiddle.net或将其添加到您的原始问题中。 - Blazemonger
@Nat 仔细阅读答案。Blazemonger 告诉你要使用 $(document).click 而不是 $(document).ready(虽然你应该在 .ready 中调用 .click)。 - p.s.w.g
+1 我没意识到你可以在“document”上使用“.click”,但它似乎比我的答案更简洁。 - p.s.w.g
我尝试了你的Blazemonger示例,但是我有一些问题。当你在单选按钮之外的任何地方单击时,即使单选按钮仍然被选中,显示的内容也会消失。此外,如果我为多个单选按钮设置此选项,如果我先点击一个选项,然后改变主意并点击另一个选项,它会保持两个内容都显示,而不是隐藏我的第一个选项,然后显示我选择的第二个单选按钮。 - Nat

3
这应该适用于你:
$('html').click(function() {
    $("#navLeft").hide();
});

然后确保在单击#frame_left元素时防止事件传播:

$("#frame_left").click(function(e) {
    $("#navLeft").show();
    e.stopPropagation();
});

非常感谢你,以及所有帮助过我的人。 - Nat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接