链接执行javascript代码的正确方法

at.*_*at. 6 html javascript anchor jquery onclick

因此,我知道从链接执行javascript代码有4种主要方法.根据我的要求,我需要在不移动屏幕的情况下这样做(链接到#并且不返回false是坏的).如果可能,执行的javascript代码的SEO也很重要.那么这样做的正确方法是什么?

方法1(需要确保myCode()始终返回false):

<a href="#" onclick="return myCode();">execute</a>
Run Code Online (Sandbox Code Playgroud)

方法2(似乎最有意义?):

<a href="javascript:myCode();">execute</a>
Run Code Online (Sandbox Code Playgroud)

方法3:

<a href="javascript:void(0);" onclick="myCode();">execute</a>
Run Code Online (Sandbox Code Playgroud)

方法4(不像我想的那样在语义上令人愉快):

<span id="executeMyCodeLink" class="link">execute</a>
<script>
$('#executeMyCodeLink').click(myCode);
</script>
Run Code Online (Sandbox Code Playgroud)

使用方法4,您当然可以使用onclick ..

Dav*_*ith 5

您使页面不跳转并使用带有href和方法4的"a"标记使用preventDefault.

<a id="executeMyCodeLink" href="#">execute</a>
<script>
  $('#executeMyCodeLink').click(function(event) {
    event.preventDefault();
    myCode();
  });
</script>
Run Code Online (Sandbox Code Playgroud)

包含一个href非常重要,因为链接不能正确设置样式,否则你的html不会验证.