Javascript $。在上,单击';href属性为空时无法工作

Javascript $。在上,单击';href属性为空时无法工作,javascript,jquery,href,Javascript,Jquery,Href,您的第一个代码示例可以正常工作,您只需防止在单击链接时发生页面刷新: <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> $(“a”)。在(

您的第一个代码示例可以正常工作,您只需防止在单击链接时发生页面刷新:

<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>

$(“a”)。在('click',函数(e){
e、 preventDefault();//<停止链接行为
log(“单击a链接”)
})

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

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

<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>

$(“a”)。在('click',函数(e){
e、 preventDefault();//<停止链接行为
log(“单击a链接”)
})

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

虽然我也添加了一个#,但在HTML5@DominicTobias中不再需要它,它不再是必需的,但在我看来,这是一个更好的做法,因为它表明你没有忘记添加一个值——这表明你特别希望这个链接不会有任何进展。这是正确的答案。散列通过阻止页面刷新来隐藏原始问题,但需要的是
preventDefault
。虽然我还添加了一个#,但在HTML5@DominicTobias中不再需要它,它不是必需的,但在我看来,这是一个更好的做法,因为它表明你没有忘记添加一个值——这表明你特别希望这个链接不会有任何进展。这是正确的答案。散列通过阻止页面刷新来隐藏原始问题,但所需的是
preventDefault
<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>