以下是构建链接的两种方法,该链接的唯一目的是运行JavaScript代码。在功能、页面加载速度、验证目的等方面,哪个更好。?

函数myJsFunc(){警报(“myJsFunc”);}<a href=“#”onclick=“myJsFunc();”>运行JavaScript代码</a>

or

函数myJsFunc(){警报(“myJsFunc”);}运行javascript代码</a>


当前回答

老实说,我两个都不建议。我会使用一个样式化的<button></button>来实现该行为。

按钮链接{显示:内联块;位置:相对;背景色:透明;光标:指针;边框:0;填充:0;颜色:#00f;文本装饰:下划线;字体:inherit;}<p>一个看起来像<button type=“button”class=“link”>链接</button>的按钮</p>

这样您就可以分配onclick。我还建议通过脚本绑定,而不是在元素标记上使用onclick属性。唯一的问题是旧IE中无法禁用的伪3d文本效果。


如果必须使用A元素,请使用javascript:void(0);由于已经提到的原因。

如果onclick事件失败,将始终进行拦截。不会发生错误的加载调用,或基于哈希更改触发其他事件如果单击失败(onclick throws),哈希标记可能会导致意外行为,除非这是一个适当的失败行为,并且您希望更改导航历史记录,否则请避免它。

注意:您可以将0替换为javascript:void('删除记录123')之类的字符串,它可以作为一个额外的指示符,显示单击的实际操作。

其他回答

我个人将它们结合使用。例如:

HTML

<a href="#">Link</a>

使用一点jQuery

$('a[href="#"]').attr('href','javascript:void(0);');

or

$('a[href="#"]').click(function(e) {
   e.preventDefault();
});

但我使用它只是为了防止用户单击空锚点时页面跳到顶部。我很少在HTML中直接使用onClick和其他on事件。

我的建议是将<span>元素与class属性一起使用,而不是锚。例如:

<span class="link">Link</span>

然后将函数分配给.link,其中包含一个封装在body中的脚本,该脚本位于</body>标记之前或外部JavaScript文档中。

<script>
    (function($) {
        $('.link').click(function() {
            // do something
        });
    })(jQuery);
</script>

*注意:对于动态创建的元素,请使用:

$('.link').on('click', function() {
    // do something
});

对于使用动态创建元素创建的动态创建元素,请使用:

$(document).on('click','.link', function() {
    // do something
});

然后,您可以将span元素设置为看起来像带有一点CSS的锚点:

.link {
    color: #0000ee;
    text-decoration: underline;
    cursor: pointer;
}
.link:active {
    color: red;
}

下面是上面提到的jsFiddle示例。

理想情况下,您应该这样做:

<a href="javascriptlessDestination.html" onclick="myJSFunc(); return false;">Link text</a>

或者,更好的是,您可以在HTML中使用默认的操作链接,并且在DOM渲染后通过JavaScript将onclick事件不显眼地添加到元素中,从而确保如果JavaScript不存在/未被利用,您不会有无用的事件处理程序来处理代码,并可能混淆(或至少分散您的注意力)实际内容。

•Javascript:无效(0);为空值[Notassigned],这意味着浏览器将返回null,单击DOM,窗口将返回false。•javascript中的“#”不在DOM或Window之后。这意味着锚href内的“#”符号是LINK。链接到相同的当前方向。

我通常会去

<a href="javascript:;" onclick="yourFunction()">Link description</a>

它比javascript:void(0)短,并且做了同样的事情。

如果你问我,也不会;

如果您的“链接”仅用于运行某些JavaScript代码,则它不符合链接的资格;我建议使用带有onclick处理程序的<span>标记和一些基本CSS来模拟链接。链接是用于导航的,如果您的JavaScript代码不是用于导航,那么它不应该是一个<a>标记。

例子:

函数callFunction(){console.log(“函数调用”);}.js操作{光标:指针;颜色:#00f;文本装饰:下划线;}<p>我想在这里调用JavaScript函数</p>