在href lnks中使用javascript void(0)的替代方法是什么?(适用于Backbone和SPA网站)

Abu*_*iam 0 html javascript optimization href backbone.js

在我的网络应用程序中,许多功能作为链接暴露为具有暴露该功能的onclick处理程序,但实际链接设置为javascript void(0),如此...

<a href="javascript:void(0)" onclick="myApp.callJen(1303, this)" rel="nofollow">Call Jennifer</a>
Run Code Online (Sandbox Code Playgroud)

当我的应用程序注入Backbone.js和Angular等单页应用程序(SPA)时,这些链接看起来并不好用.有时在这些站点中单击此链接将转到未找到的实际页面(不确定为什么会发生这种情况).

无论如何我应该如何替换这些网站的链接?

我们现在说使用真实的URL或按钮不是一个选项.

其他帖子建议这样的东西..

<a href="#!">Link</a>
Run Code Online (Sandbox Code Playgroud)

或者 ......

// Cancel click event
$('.cancel-action').click(function(){
alert('Cancel action occurs!');
});

a { cursor: pointer; color: blue; }
a:hover,a.hover { text-decoration: underline; }
 <a class="cancel-action">Cancel this action</a>
Run Code Online (Sandbox Code Playgroud)

老实说,我不喜欢其中任何一种,所以你能提出更好的建议吗?

Fab*_*tzl 6

正确的方法是将"防止默认动作".在jQuery事件处理程序中:event.preventDefault()或简单地说return false;.

专家知识:请注意,这void是一个操作符,不需要括号.