gpt4 book ai didi

javascript - 用另一个javascript取消onClick javascript函数

转载 作者:行者123 更新时间:2023-11-29 10:24:13 24 4
gpt4 key购买 nike

你好,

情况有点棘手,我需要一些建议。

我的项目中有几个这样的 href。

<a class="not-allowed" href="javascript:void(0)" onclick="showSettingDiv();">Change</a>
<a class="" href="javascript:void(0)" onclick="DeleteSettingDiv();">Delete</a>

根据登录用户的类型,我必须让一些链接不执行任何操作并触发其他内容。

我有这个功能来实现这一点:

$('.not-allowed').each(function (e) {
$(this).click(function (e) {
e.preventDefault();
alert("you dont have permission");
})
});

这确实会触发警报,但是,它也会执行我的 onclick 函数。有没有一种方法可以停止所有 javascript 函数并执行上面的函数?

我意识到我可以只使用 .removeAttr() 但我不确定这是否是最好的方法。我的意思是我可能有按钮来限制或复选框和单选按钮来禁用。

e.preventDefault 不会处理我猜想的所有事情。无论如何,如何阻止所有 javascript 函数?

谢谢。

最佳答案

是的。它叫做Capture mode .它适用于与 DOM 兼容的浏览器。检查您的 JS 框架是否为您提供此功能。

If the capturing EventListener wishes to prevent further processing of the event from occurring it may call the stopProgagation method of the Event interface.

一个简单的例子:

<html>
<body>
<button class="not-allowed" id="btn1" onclick="alert('onclick executed');">BTN1</button>
<button id="btn2" onclick="alert('onclick executed');">BTN2</button>

<script type="text/javascript">
document.addEventListener("click", function (event) {
if (event.target.className.indexOf("not-allowed") > -1) {
event.stopPropagation(); // prevent normal event handler form running
event.preventDefault(); // prevent browser action (for links)
}
}, true);
</script>

</body>
<html>

关于javascript - 用另一个javascript取消onClick javascript函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5194893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com