因此,我知道使用<a href="javascript: foo()">
并不是最佳实践,请不要为此而b惜我。这是目前针对我所遇到问题的最佳解决方案。
我正在编辑一个网站,其中包含一堆非交互式元素,例如div
和spans
,它们代表菜单,下拉菜单,按钮等。在所有光荣的地狱引发的问题中,可访问性走上了舞台。
所以要解决它:
<div class="btn" onclick="foo()"> EDIT </div>
<!--had to become-->
<a href="javascript: foo();"><div class="btn">EDIT</div>
现在,这显然会引发事件定向等问题,但现在让我们忘记这些吧,从这些按钮调用的大多数功能实际上只是AJAX对新页面的调用等。
以下是更大的问题:
在<a>
调用中,如何访问对foo()
标记的任何引用? this
设置为window
,而event
是undefined
。我尝试将event
传递到方括号中,如下所示:
<a href="javascript: foo(event)">
还是没用。那么,有没有办法访问对在函数本身内调用该函数的<a>
标签的引用?
编辑以阐明为什么它不是重复项:
此问题与this
中的onclick
没有关系。它与获取参考信息有关,而不使用onclick
,而是使用href="javascript: foo()"
,这与使用onclick不同。
答案 0 :(得分:1)
只需将onclick
属性保留在<a>
标签上:
<a onclick="foo(this)"><div class="btn">EDIT</div></a>
通过href
属性调用Javascript函数不会在其旁边传递click
事件。
因此,不能通过event
属性Javascript函数调用来访问href
。