Jquery - 文档点击禁用回发?

时间:2010-10-13 07:31:46

标签: jquery callback

我有一个div来显示当我按下按钮并在我按任何地方时隐藏。

jQuery(document).ready(function () {
    $(document).click(function (e) {
        if (e.button == 0) {
            $('#DivToHide').hide();
        }
    });

    //If its own, return
    $('#DivToHide').click(function () {
        return false;
    });
    //If it is the button to triger Display, return
    $('#DisplayDivButton').click(function () {
        return false;
    });
});

这很好用,除了:DivToHide包含一个链接按钮,可以进行回调。但是当我启用上面的代码时,它不会进行回调。并非所有内容都在updatepanel中。 感谢。

2 个答案:

答案 0 :(得分:0)

如果返回false,将阻止对事件的默认操作执行。

当你点击DIV里面的链接时,它首先在DIV上注册点击处理程序,并返回false,停止实际接收点击事件的基础链接本身。

我认为这就是为什么你的链接不起作用的原因,但是我不知道你为什么在#DivToHide上有一个处理程序,你不能只删除它并让文档句柄上的click处理程序隐藏DIV和DisplayDivButton句柄上的单击处理程序显示DIV?

答案 1 :(得分:0)

请勿定位容器div #DivToHide ..

定位其中的实际链接

//If its own, return
//this will make all links inside DivToHide to cancel default action..
$('#DivToHide a').click(function () {
    return false;
});

但是,如果你的内部有更多链接,你最好在链接中添加 id 并直接定位它。

评论

更新

您应该使用链接上的event.stopPropagation();来阻止事件冒泡到其他元素。

$('#DivToHide a').click(function (event) {
        event.stopPropagation();
    });