我有需要在点击事件上运行的功能。但是它可以正常使用锚标记的onclick属性,但不能使用HREF属性。它给id未定义。这是演示代码
HTML
<a href="javascript:test(this)" id="first">click</a>
JS
function test(obj){
alert(obj.id)
}
答案 0 :(得分:3)
this
是window
,而不是控件。在href
中放置javascript与onclick
之类的事件处理程序不同。这是一个fiddle。
答案 1 :(得分:3)
这是一个修复:
<a href="#" onclick="javascript:test(this);" id="first">click</a>
答案 2 :(得分:0)
我很喜欢Matt Kruse's Javascript Best Practices条。在其中,他声明使用href
部分执行JavaScript
代码是一个坏主意。
这里有一些在锚点调用javascript的好方法:
<a href="javascript:;" onClick="return DoSomething();">link</a>
<a href="javascript:void(0);" onClick="return DoSomething();">link</a>
<a href="#" onClick="return DoSomething();">link</a>
答案 3 :(得分:0)
使用锚标记的onclick事件。这个内部href代表当前窗口。
答案 4 :(得分:0)
这个问题已经得到了答案但是如果你想使用你在问题中使用的函数那么你应该使用它像
<强> HTML:强>
<a href="http://heera.it" onclick="return test(this.id)" id="first">click</a>
<强> JS:强>
function test(obj){
alert(obj);
return false; // this is required to stop navigation to that link
}
注意,return false
,如果您在此href
中有价值,那么您应该使用return false
,但还有其他选项,例如event.preventDefault()
或{{1}因为这个原因。
DEMO.另一个DEMO(没有event.returnValue = false (for IE)
)。阅读MDN上的this关键字。