HREF中的函数无法使用javascript工作

时间:2013-09-20 18:51:47

标签: javascript

我有需要在点击事件上运行的功能。但是它可以正常使用锚标记的onclick属性,但不能使用HREF属性。它给id未定义。这是演示代码

HTML

<a href="javascript:test(this)" id="first">click</a>

JS

function test(obj){
alert(obj.id)
}

5 个答案:

答案 0 :(得分:3)

该上下文中的

thiswindow,而不是控件。在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关键字。