我有以下html + js代码:
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
<a href="#" id=key onclick="func(0)">foo</a>
</body>
<script type="text/javascript">
function func(k){
alert(1);
return false;
}
</script>
</html>
你能解释如何重构下面的代码,点击href代码func
执行但#不添加到URL,页面不应该重新加载?
使用javascript:void(0);
而不是#
如下:
<a href="javascript:void(0);" id=key onclick="func(0)">foo</a>
您只需删除href属性:
<a id='key' onclick="func(0)">foo</a>
将其更改为:
vvvvvvv
<a href="#" id=key onclick="return func(0)">foo</a>
我想你忘了“钥匙”中的引号
<a href="#" id="key" onclick="func(0)">foo</a>
为了更加语义正确,我将使用带有以下onclick的按钮:
<button id=key onclick="return func(0)">foo</button>
这样就没有必要乱砍e.preventDefault / return false。