【问题标题】:e.preventDefault() is not working on div onclicke.preventDefault() 不适用于 div onclick
【发布时间】:2011-04-22 06:46:19
【问题描述】:

preventDefault() 在 div onclick 上不起作用,我尝试了 preventDefault 和 stopImmediatePropagation 也没有用,请参阅下面的示例。

<title></title>

<script src="scripts/jquery-1.5.2.min.js" type="text/javascript"></script>

<script type="text/javascript">

    $().ready(function () {
        $("div").click(function (e) {
            e.preventDefault();
            //e.stopImmediatePropagation();
            return false;
        });

        //$("div").bind("click", function (e) { e.stopImmediatePropagation(); return false; });

    });

</script>

<div onclick="alert('1');">

    Sample text

</div>

【问题讨论】:

  • 你怎么知道它不起作用,即你看到了什么默认行为或你观察到祖先元素的事件?
  • 您无法确保您的绑定事件将首先运行。你试过 $('div').removeAttr('onclick') 吗?

标签: javascript jquery html preventdefault


【解决方案1】:

没有点击div默认行为。你想防止什么?

另外event.stopPropagation() 是阻止事件冒泡祖先并触发它们的事件处理程序。在你的情况下它触发了什么?

【讨论】:

  • 嗨,我正在尝试阻止在 div onclick 事件上定义警报,首先警报正在触发,然后 e.preventdefault 正在执行
  • 我认为这是因为 jQuery 在直接声明到 DOM 的事件的末尾附加了您的 .click() 事件。此外,正如 Alex 所说,alert("1") 是一个自定义事件,而不是 默认行为
猜你喜欢
  • 2019-06-01
  • 2021-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-10
  • 2013-05-26
  • 2021-06-13
  • 2013-05-24
相关资源
最近更新 更多