使用onclick创建一个可点击的链接,但没有href =#?

exe*_*ook 17 html javascript

我的页面上有一组可点击的标识符.大约有一百个,比如'cat1','cat2','dog1','dog2','dog3'等等.然后我有一个function IDClick(id) {}

我需要在HTML中点击这些标识符,以实现我用过的<a>标签onclick

<a onclick=IDClick(id)>id</a>
Run Code Online (Sandbox Code Playgroud)

现在它可以工作,但是当光标悬停在可点击元素上时光标不会改变.

所以我尝试添加 href=#

<a href=# onclick=IDClick(id)>id</a>
Run Code Online (Sandbox Code Playgroud)

现在光标没问题,但是当我点击该项时,浏览器位置栏中的URL将会改变.这是不希望的.

如何获得混合行为?

我也不需要下划线.

Rob*_*xyz 29

您需要阻止浏览器执行默认操作.

<a href="#" onclick="IDClick(id);event.preventDefault();">id</a>
Run Code Online (Sandbox Code Playgroud)

单击链接时,默认操作是转到该地址. event.preventDefault();阻止浏览器执行默认操作.

  • 我认为这比批准的答案更好,因为您不需要操纵CSS (2认同)

bee*_*jay 22

您可以使用CSS强制光标在可点击元素的悬停时更改:

.myClickableThingy {
    cursor: pointer;
}
Run Code Online (Sandbox Code Playgroud)

然后你可以<span><a>标签之前切换回s或者你正在使用的任何元素.

  • 使用CSS使它看起来*好,但仍然无法通过键盘访问它.(即,选项卡永远不会关注链接.) (5认同)

小智 5

给您的锚元素一个类并为其设置样式以实现所需的功能:

<a class='kinda-link' onclick='whatevs()'>Hi I'm a kinda-link</a>
Run Code Online (Sandbox Code Playgroud)

和你的CSS:

a.kinda-link:hover { cursor: pointer; }
Run Code Online (Sandbox Code Playgroud)

  • 这不会让您切换到元素/为其提供焦点。 (3认同)
  • 不,只是可访问性问题。它会起作用,但并不是真正的最佳实践。 (2认同)