多个OnClick JQuery事件正在激发

Multiple OnClick JQuery events firing

本文关键字:事件 OnClick JQuery 多个      更新时间:2024-02-08

我有一个带有div的页面,上面有一个按钮。我在这两个页面上都添加了onClick事件。现在,当我单击div上的按钮时,div的onClick也在执行。有什么办法可以避免这种情况吗?

谢谢你,

试试这个,将事件作为参数传递给onclick事件并调用

event.stopPropagation();
event.preventDefault();

您的onclick事件分配应该是:

$(button).click(function(event) {
    // script here
    event.stopPropagation();
    event.preventDefault();
});

在您的点击处理程序中,您可能希望使用"stopPropagation",例如:

$("button").click(function(e) {
    // handle this event
    // ...
    // don't pass this event up to parent handlers
    e.stopPropagation();
} );

还有一个相关的功能,你可能想读一读,叫做"preventDefault",它告诉浏览器不要做它通常自动做的事情(例如,当点击提交按钮时提交页面)

另请参阅:https://developer.mozilla.org/en/DOM/event.stopPropagationhttp://api.jquery.com/event.stopPropagation/什么';s添加';return false';点击事件监听器?http://fuelyourcoding.com/jquery-events-stop-misusing-return-false/

在link元素的侦听器中,您可以放置e.stopPropagation(),它应该会修复它(如果您使用事件冒泡)。

如果您没有使用jQuery,请确保将addEventListener()useCapture参数设置为Falseinfo-MDN;您希望确保知道事件在DOM中的移动方向(希望它们冒泡)。

您需要防止按钮onClick事件冒泡到div。因此,基本上在按钮的onClick函数结束时,一旦完成所有逻辑,您需要调用event.stopPropagation()

如果以上都不起作用,请尝试:

$("button").click(function(e) {
    e.stopImmediatePropagation();
});