仅在单击元素后将单击处理程序绑定到body

时间:2012-06-26 15:49:44

标签: jquery

我有一个关于jquery的概念性问题。我有这个小提琴

http://jsfiddle.net/zvCrN/

我想做的是: 将单击处理程序绑定到链接。 单击链接以显示警报。 只有在发生这种情况之后,才将click事件处理程序绑定到body,以便在body中的任何位置单击显示不同的警报。

我确定这是微不足道的,我无法绕过它。如何将处理程序绑定到body,以便它也不会在链接点击上触发?

任何帮助表示赞赏,

2 个答案:

答案 0 :(得分:2)

$("#infolink").click(function(e) {
    e.stopPropagation();
    alert('link')
});

$('body, :not("#infolink")').click(function() {
    alert('body');
});

<强> DEMO

答案 1 :(得分:0)

尝试以下方法:

var link = $('#infolink');
var handler = function (event) {
  link.off('click', handler);
  event.stopPropagation();
  $('body').on('click', function (event) {
    alert('some other message');
  });
  alert('some message');
};
link.on('click', handler);