Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用onclick创建可点击链接,但不使用href=#?_Javascript_Html - Fatal编程技术网

Javascript 使用onclick创建可点击链接,但不使用href=#?

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="#"

我的页面上有一组可点击的标识符。大约一百个,像'cat1','cat2','dog1','dog2','dog3'等等。然后我有一个
函数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;

}