2015-06-01 13 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