当子元素的onclick触发时,是否可以阻止浏览器跟踪链接?

Osc*_*hed 15 javascript javascript-events

这是我基本上的:

<a href="http://somelink.com">
    <span>stuff</span>
    <span onclick="AwesomeFunction();">more stuff</span>
    <span>the last stuff</span>
</a>
Run Code Online (Sandbox Code Playgroud)

现在,问题是我想将父级保持为链接,但如果用户使用onclick事件单击跨度,我不希望浏览器遵循该链接.

我试过了

event.stopPropagation();
Run Code Online (Sandbox Code Playgroud)

但这似乎只是停止了点击onclick事件,或者我做错了什么.

我目前处于紧缩模式,我不想花太多时间重写生成这个HTML的代码,但它仍然不能成为一个黑客,因为它是在一个非常重要的网站功能中实现的.任何帮助赞赏.

Car*_*ist 29

使javascript方法返回false!

或者您也可以使用event.preventDefault()而不是event.stopPropagation()

  • ```event.preventDefault()```不是jQuery.它只是很好的老式JavaScript. (3认同)

Vic*_*tor 8

当然,只需在onclick中返回false

就像是

<a href="somwhere" onclick="return false;">nothing happens</a>
Run Code Online (Sandbox Code Playgroud)

  • 嗯......那不太对劲.当他点击其他跨度时,他仍然希望关注链接.此代码将阻止浏览器在链接上单击任何链接.不只是onClick事件的跨度. (2认同)

San*_*nen 8

<a href="http://somelink.com">
    <span>stuff</span>
    <span onclick="AwsomeFunction(); return false;">more stuff</span>
    <span>the last stuff</span>
</a>
Run Code Online (Sandbox Code Playgroud)