带有 Javascript onclick 事件的 HTML 锚标记

发布于 2024-12-03 23:41:48 字数 336 浏览 1 评论 0原文

在使用 Google 时,我发现他们在锚标记中使用 onclick 事件。

在谷歌标题部分的more选项中,它看起来像普通的标签,但点击它不会被重定向,而是打开一个菜单。通常,使用时

<a href='more.php' onclick='show_more_menu()'>More >>></a>

它通常会转到“more.php”而不触发 show_more_menu(),但我在该页面本身中显示了一个菜单。如何像google那样做?

On using Google I found that they are using onclick events in anchor tags.

In more option in google header part, it looks like normal a tag, but onclicking it doesn't get redirected but opened a menu. Normally when using

<a href='more.php' onclick='show_more_menu()'>More >>></a>

It usually goes to 'more.php' without firing show_more_menu(), but I have show a menu in that page itself. How to do like google?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

桃扇骨 2024-12-10 23:41:48

如果您的 onclick 函数返回 false,则默认浏览器行为将被取消。因此:

<a href='http://www.google.com' onclick='return check()'>check</a>

<script type='text/javascript'>

function check()
{
    return false;
}

</script>

无论哪种方式,谷歌是否这样做并不重要。在 javascript 中绑定 onclick 函数会更干净 - 这样您就可以将 HTML 与其他代码分开。

If your onclick function returns false the default browser behaviour is cancelled. As such:

<a href='http://www.google.com' onclick='return check()'>check</a>

<script type='text/javascript'>

function check()
{
    return false;
}

</script>

Either way, whether google does it or not isn't of much importance. It's cleaner to bind your onclick functions within javascript - this way you separate your HTML from other code.

貪欢 2024-12-10 23:41:48

您甚至可以尝试以下选项:

<a href="javascript:show_more_menu();">More >>></a>

You can even try below option:

<a href="javascript:show_more_menu();">More >>></a>
遇见了你 2024-12-10 23:41:48

据我了解,您不想在单击链接时重定向。

你可以这样做:

<a href='javascript:;' onclick='show_more_menu();'>More ></a>

From what I understand you do not want to redirect when the link is clicked.

You can do:

<a href='javascript:;' onclick='show_more_menu();'>More ></a>
月光色 2024-12-10 23:41:48

使用以下代码显示菜单,而不是转到 href 地址

function show_more_menu(e) {
  if( !confirm(`Go to ${e.target.href} ?`) ) e.preventDefault();
}
<a href='more.php' onclick="show_more_menu(event)"> More >>> </a>

Use following code to show menu instead go to href addres

function show_more_menu(e) {
  if( !confirm(`Go to ${e.target.href} ?`) ) e.preventDefault();
}
<a href='more.php' onclick="show_more_menu(event)"> More >>> </a>

狼性发作 2024-12-10 23:41:48

另一种解决方案可以防止默认操作,即使 javascript 函数返回任何值也是如此。

<a href="www.any-website.com" onclick='functionToRun();return false;'>

One more solution that prevents default action even if the javascript function returns any value.

<a href="www.any-website.com" onclick='functionToRun();return false;'>
甜中书 2024-12-10 23:41:48
1) Link to work
<a href="#" onClick={this.setActiveTab}>
      ...View Full List
                    </a>
  setActiveTab = (e) => {
    e.preventDefault();
    console.log(e.target);
}
1) Link to work
<a href="#" onClick={this.setActiveTab}>
      ...View Full List
                    </a>
  setActiveTab = (e) => {
    e.preventDefault();
    console.log(e.target);
}
魂归处 2024-12-10 23:41:48

不确定这是否是您正在寻找的内容,但您可以使用 div 添加 role="link" 重新创建锚标记,这没有 href 但位于同时从SEO的角度来看应该没问题

<div tabindex="0" role="link" aria-label="Example Link" onclick="show_more_menu()">
  Click to navigate
</div>

Not sure if this is what you are looking for but you can recreate an anchor tag with a div adding role="link", this doesn't have the href but at the same time it should be fine from a SEO point of view

<div tabindex="0" role="link" aria-label="Example Link" onclick="show_more_menu()">
  Click to navigate
</div>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文