javascript - 将 JS 事件绑定(bind)到链接的最佳方法是什么?

标签 javascript html methods hyperlink bind

最好的方法是什么?为什么?

引用文献?

<a href="javascript:helloworld()">link</a>

点击?

<a href="#" onClick="helloworld()">link</a>

通过框架(例如jquery)绑定(bind)?

<a id="foo" href="#">link</a>
…
$('#foo').live('click',helloworld);

最佳答案

这要看情况。通常,您永远不应该拥有不执行任何操作的链接。如果您的用户禁用了 JavaScript,或者 JavaScript 无法加载怎么办?您必须优雅地降级才能拥有可访问的网站。因此,举例来说,如果您有一个使用 Ajax 加载的框,您应该将其链接到另一个页面,然后在不显眼的单独 JavaScript 中绑定(bind)处理程序:

<a class="loadPage" href="actualPage.php">Go to my page</a>

以及另一个文件:

$('.loadPage').click(function(e) {
    // Load with Ajax...
    e.preventDefault(); // Stop the link from going through
});

如果链接是使用 JavaScript 生成的,那么大多数情况下可以使用 # 作为 href。但是,在这种情况下,您仍然应该使用 JavaScript 附加处理程序,而不是在 innerHTML 中设置 onclick (*颤抖*)。

因此,一般来说:如果您的 HTML 中的生产代码中有 onclick 属性或 javascript: 链接,那么您就不会分离内容、行为和呈现;你不方便接近;而且你没有语义。不要这样做!

关于javascript - 将 JS 事件绑定(bind)到链接的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8780023/

相关文章:

javascript - 富文本编辑器运行不正常

javascript - 如何获取使用循环内的 ng-options 实现的选择框的值?

php - 将图像上传到 mysqli 数据库时出现问题

java - 如果数组中输入的数据小于零,我试图创建一条错误消息,输入验证

java - 如何获取一个字符串并将其作为变量......?我什至不知道如何表达

javascript - 揭示模块模式,未定义的属性

javascript - Express js 外部 javascript 文件未加载

c# - 如何在 Visual Studio 中使用键盘查看封闭的 block /元素

javascript - 根据条件锁定和解锁

java - 如何跟踪 Java 中的方法调用?