2015-06-01 24 views
0
<a href="">i am a link</a> 
<script src="jquery.js"></script> 
<script> 
    $("a").on('click', function(){ 
     console.log("the a link is clicked") 
    }) 
</script> 

不会打印任何东西,当我点击链接时。

鉴于,当我初始化hrefhash符号,它的工作原理。

这个作品,

<a href="#">i am a link</a> 
<script src="jquery.js"></script> 
<script> 
    $("a").on('click', function(){ 
     console.log("the a link is clicked") 
    }) 
</script> 

回答

5

你的第一个代码示例将正常工作,你只需要防止链接被点击时所发生的页面刷新:

<a href="">i am a link</a> 
<script src="jquery.js"></script> 
<script> 
    $("a").on('click', function(e){ 
     e.preventDefault(); // < stop the link behaviour 
     console.log("the a link is clicked") 
    }) 
</script> 

这就是说,它更好的做法是始终在href参数中包含一个值,即使它只是一个# - 但如果需要,仍然使用preventDefault()

+0

虽然我还添加了一个#,但它不再需要在HTML5 http://www.w3.org/TR/html-markup/a.html#placeholder-hyperlink –

+0

@DominicTobias这不是必需的,但海事组织它更好实践,因为它显而易见,你没有忘记添加一个值 - 它表明你专门打算这个链接无处可去。 –

+0

这是正确的答案。哈希通过阻止页面刷新来隐藏原始问题,但是'preventDefault'是需要的。 – bendman

相关问题