0

希望从嵌入在 div 中的锚点捕获单击事件。锚点实际上调用了一个模态对话框表单,我需要抑制该调用,以免弹出窗口出现。

<div id="whatever"><a class=" modal-dialog button action-add" href="/x/y/z">add</a></div>

<script type="text/javascript">
    $("#whatever").click(function (e) {
        alert('hello');
        e.preventDefault();
    });
</script>

上面的代码被调用,但它弹出一个模态表单/弹出窗口,我想以某种方式抑制该锚点单击时的弹出窗口。我以为 e.preventDefault 会这样做,但弹出窗口仍在出现。

4

1 回答 1

2

问题是您的处理程序仅在它从锚点击传播后才被调用,这意味着锚的默认行为仍在发生。

如果您只有在 div 内有锚点,这将起到作用:

<script type="text/javascript">
    $("#whatever a").click(function (e) {
        alert('hello');
        e.preventDefault();
    });
</script>

如果您还有其他事情:

<script type="text/javascript">
   $("#whatever a").click(function (e) {
        e.preventDefault();
    });
    $("#whatever").click(function (e) {
        alert('hello');
    });
</script>
于 2012-05-02T00:17:51.510 回答