使用jQuery在外部单击时隐藏DIV,但允许传播事件

我已经阅读了很多其他问题,涉及如何在你点击它之外关闭div,但我有一个复杂的问题,因为我有其他元素与.live()绑定

我想要发生的是,如果我点击页面上的任何其他地方,div应该消失,包括我点击“实时”元素。 当我点击那个实时元素时,我希望它的处理程序能够正常进行。

到目前为止,我已经阅读过,处理关闭div的基本方法是将一个点击监听器附加到或$文档,但是这会阻止任何其他直播事件冒出前面的body / doc处理程序。 有没有解决的办法?

在现场,事件从最前面到后面按顺序从梯子中冒出来。 在你的’live’元素的click(你的身体对象的直接/间接子)中,如果你没有返回false或停止传播,它会冒出梯子到达文档的click处理程序。 通过实时附加文档的单击似乎不起作用。

在这里查看示例实现: http : //jsfiddle.net/VHtSP/6/

$('div.menu').live('click', function(e) { e.stopPropagation(); alert('click inside menu. will not propagate.'); return false; }); $(document).click(function() { alert('document click() handler.'); // close the div $('div.menu').hide(); }); $('a').live('click', function() { alert(' click() handler'); // .. your code to handle the live element's click });