2012-12-10 39 views
0

Iam尝试使用此命令将javascript函数分配给html链接标记。将OnClick分配给链接标记的问题<a>

<a href="javascript:;" onClick="doSomething()">link</a> 

但是,当我第二次点击链接时,会执行doSomething函数。第一次点击没有任何反应。

任何人都有这个想法吗?

+3

你不应该在'href'中做内联脚本,然后在'onclick'属性中调用一个函数。做一个或另一个,或者最好都不要,并附加事件处理程序。 http://stackoverflow.com/questions/5519059/inline-javascript-in-href – matthewpavkov

+0

你的代码工作正常。 http://jsfiddle.net/4umTf/问题可能会在doSomething实现中或在其他页面的脚本中进行本地化。 –

回答

1

独立你的JavaScript从HTML使用.addEventListener

<a href="" id="myLink">link</a> 

document.getElementById('myLink').addEventListener('click', doSomething, true); 

doSomething记得用event.preventDefault()从执行动作停止点击。

+2

这个问题与mivaas19的问题有关? –

+0

除非错误出现在_function_'doSomething'中,因为我从HTMLElement的所有属性中删除了JavaScript,意外的行为应该会消失。 –

0

在我的电脑中,第一次点击就可以工作。

<html> 
<head> 
<script type="text/javascript"> 
function doSomething() { 
alert("Hi :)"); 
} 
</script> 
</head> 
<body> 
<a href="javascript:;" onclick="doSomething()">Click</a> 
</body> 
</html> 

使用Firefox。

无论如何,为什么使用href =“javascript :;”然后?

2

修改您的doSomething()函数,使其不会导致问题。 (如果该功能显示某些文本,则不会发生该问题。)要获得更具体的帮助,您需要披露更多信息。

0

其实doSomething()函数在这里创建一个MooTools对话框。这里是代码

function doSomething(tit,text,id) { 

new mBox.Modal({ 
    content: unescape(text), 
    setStyles: {content: {padding: '25px 15px', lineHeight: 25, height:'400px'}}, 
    title: unescape(tit), 
    attach: id 
}); 

} 

可能是这是什么原因造成的问题。但不是很确定。