Javascript 使用onclick创建可点击链接,但不使用href=#?
我的页面上有一组可点击的标识符。大约一百个,像'cat1','cat2','dog1','dog2','dog3'等等。然后我有一个Javascript 使用onclick创建可点击链接,但不使用href=#?,javascript,html,Javascript,Html,我的页面上有一组可点击的标识符。大约一百个,像'cat1','cat2','dog1','dog2','dog3'等等。然后我有一个函数IDClick(id){} 我需要那些可以在HTML中单击的标识符,以实现我使用标记和onclick <a onclick=IDClick(id)>id</a> 现在光标已确定,但当我单击该项目时,浏览器位置栏中的URL将更改。这是不可取的 如何获得混合行为 我也不需要下划线。您需要停止浏览器执行默认操作 <a href="#"
函数IDClick(id){}
我需要那些可以在HTML中单击的标识符,以实现我使用
标记和onclick
<a onclick=IDClick(id)>id</a>
现在光标已确定,但当我单击该项目时,浏览器位置栏中的URL将更改。这是不可取的
如何获得混合行为
我也不需要下划线。您需要停止浏览器执行默认操作
<a href="#" onclick="IDClick(id);event.preventDefault();">id</a>
单击链接时,默认操作是转到该地址<代码>事件.preventDefault()代码>阻止浏览器执行默认操作
<a href="#" onclick="IDClick(id);event.preventDefault();">id</a>
这是一个更好的可访问性解决方案。引用:“使用CSS使其看起来正常,但仍然无法从键盘访问(即,tab将永远不会聚焦链接)”。您可以使用CSS强制光标在可单击元素的悬停位置更改:
.myClickableThingy {
cursor: pointer;
}
然后,您可以切换回
s或在
标记之前使用的任何元素。为锚元素提供一个类并对其进行样式设置,以实现您所需的:
<a class='kinda-link' onclick='whatevs()'>Hi I'm a kinda-link</a>
最近,我在大多数情况下使用可点击的跨度
一些文本带有一些
部分
可点击。
使用返回false
属性上缺少引号。@上标:如果属性值不包含空格(可能是
),则在HTML中引号是可选的。@FelixKling:它仍然更干净。我并不是说这是错误。这只是一个例子,实际代码看起来像这样。
。@SuperScript:好吧,听起来像是这样。这不允许您对元素进行制表键/给予它焦点。@SuperScript这是OP问题中的一个要求吗?不,只是一个可访问性问题。它会起作用,只是不是真正的最佳实践。@SuperScript是的,但我认为他一开始就不需要锚。“切换回标记之前使用的任何元素类型”是什么意思?我很抱歉。我不清楚。我的意思是使用div或span而不是锚元素。我尝试了div,但它们将跨越整个页面,使它们自动调整大小似乎是一项太复杂的任务。span应该可以做到这一点。或者其他建议中止默认行为的解决方案。你有几个选择。使用CSS使它看起来不错,但仍然让它无法从键盘访问。(也就是说,tab永远不会关注链接。)我认为这个答案比批准的答案好,因为你不需要操纵CSI,我会将preventDefault
调用放在click handler函数中,但除此之外,这是一个比公认答案好得多的解决方案。这比公认答案好得多,因为浏览器会在左下角的某个位置显示url,这是许多人习惯的。
a.kinda-link:hover { cursor: pointer; }
IDClick() {
...
return false;
}