'OnClick'中断了我的超链接

时间:2010-08-18 15:48:08

标签: javascript html

我有一个包含范围的<a>标记。跨度有附加到它的javascript做某事。因此,当点击跨度时,javascript会运行,但忽略<a href>并且它不会导航到它。

有没有办法让它继续正常导航?

<a href='http://www.google.com'><span>some text</span></a>

click事件实际上是以onclick的方式注册的,我的问题标题有点误导。

将鼠标悬停在链接上可以将URL按照您的预期放入状态栏,只需单击它即可。

目前javascript很简单return true;,而我试图解决这个问题。

我怀疑javascript是在span而不是a,因为一旦javascript完成后,它会对如何传播回到href感到困惑。

我担心我不知道它是如何受限制的,因为它是一些奇怪的第三方组件。

3 个答案:

答案 0 :(得分:1)

  

我怀疑因为javascript是在跨度而不是a,因为一旦javascript完成后它会如何传播回到href而感到困惑。

是。如果您的onClick处理程序在跨区上,则浏览器无法读取超链接的href属性。如果链接有ID,您可以执行以下操作:

function onclick()
{
    //Do your things...

    var link = document.getElementbyId('your_link_id').href;
    window.location.href = link;
    return true;
}

答案 1 :(得分:0)

你的javascript可能返回一个非true的值(一个值为boolean false的值)。简单的解决方案是在单击链接时运行的函数/代码的末尾添加return true语句。

答案 2 :(得分:-2)

如果您使用的是jQuery,请确保在事件处理程序中不返回false。这将覆盖默认值。

如果没有:您可能需要在JS之后显式编写您希望链接执行的操作:

<a href="www.example.com" onclick="javascript:someFunction(); window.location = \"www.example.com\"">click here</a>

这将执行一个函数,然后将窗口重定向到正确的位置。