javascript – Jquery – 隐藏在文档上的任何位置

我有一个div隐藏,只要你点击它外面但我有一些麻烦得到div内的某些链接工作(而不是隐藏div).

$(document).click(function() {
    fav.hide();
});
theDiv.click(function(e) {
    e.stopPropagation();
});

这就是我整个点击外面和关闭事件所拥有的.接下来的事情:我的div中有两种类型的链接,一种是常规链接,另一种是javascript链接.常规的一个重定向确定但javascript一个没有做任何事情.

有人可以帮帮我吗?谢谢.

编辑:

以下是我的代码可能会有所帮助

var fav = $('#favorites');

// Open & close button
$('#favorites_a').click(function(e) {
    e.stopPropagation();
    e.preventDefault();
    fav.toggle();
});

$('a.c',fav).live('click', function(e) {
    alert('hey');
});

$(document).click(function() {
    fav.hide();
});

fav.click(function(e) {
    e.stopPropagation();
});

HTML(在页面加载后构建):

<div id="favorites">
    <div class="wrap">
        <ul><li><a href="/abc" class="p">A</a><a href="#" class="c">B</a></li></ul>
    </div>
</div>

最佳答案 这可能是live()单击事件处理程序的问题.当您使用live时,事件处理程序实际上附加到文档.所以事件需要冒泡到文档,但是你的click事件处理程序会阻止冒泡.

它适用于delegate

fav.delegate('a.c', 'click', function(e) {
    alert('hey');
});

这里,事件处理程序被添加到fav.

DEMO

点赞