Javascript 通过单击内部禁用HREF

Javascript 通过单击内部禁用HREF,javascript,jquery,html,onclick,href,Javascript,Jquery,Html,Onclick,Href,如果在中触发了带有onclick函数的元素,如何禁用ahref,请尝试返回false,而不是event.preventDefault()停止事件bubling在上注册事件侦听器,单击仍会向上冒泡。使用event.stopPropagation()取而代之。您正在对没有默认单击行为的元素使用event.preventDefault(),因此它什么也不做 $(函数(){ $(“.inside>.fa”)。单击(函数(e){ e、 停止传播(); console.log(如target); });

如果在
中触发了带有
onclick
函数的元素,如何禁用a
href
,请尝试
返回false
,而不是
event.preventDefault()
停止事件bubling

上注册事件侦听器,单击仍会向上冒泡。使用
event.stopPropagation()取而代之。您正在对没有默认单击行为的元素使用
event.preventDefault()
,因此它什么也不做

$(函数(){
$(“.inside>.fa”)。单击(函数(e){
e、 停止传播();
console.log(如target);
});
});
a{
display:block;/*必填项,否则不能将诸如div之类的块级元素包含在*/
}


查看
event.stopPropagation()
。单击仍会向上冒泡。使用
event.stopPropagation()取而代之。您正在对一个没有默认单击行为的元素使用
event.preventDefault()
,因此它什么也不做。上面代码的可能副本似乎可以工作。(虽然我无法解释为什么
preventDefault
做了
stopPropagation
应该做的事情。)您是否包括jQuery库?您的浏览器控制台中是否有任何错误?纠正我的错误…事件侦听器必须在锚定标记上注册。@Dennis-现在请查看答案请注意,您的选择器
.inside>.fa
只会在单击inside
.fa
元素时禁用href。将选择器更改为
.inside、.inside>.fa
以在单击
.inside
div时禁用事件冒泡。另一件要考虑的事情是:如果希望执行
警报
语句,请将
返回false
移动到函数的最末端。奇怪的是,
stopPropagation
似乎不会阻止链接被跟踪。我得到“不安全的JavaScript尝试启动框架导航…尝试顶层窗口导航的框架是沙盒,但“允许顶部导航”或“允许通过用户激活顶部导航”的标志未设置。“您使用的浏览器是什么?我在Firefox和Chrome中都看到,虽然Firefox不会抛出相同的消息。但在这两种浏览器中,如果我删除
target=“\u top”
和/或将
href
更改为相对路径,链接仍会执行。
event.preventDefault();