在href lnks中使用javascript void(0)的替代方案是什么?(对于主干和水疗场所)

在href lnks中使用javascript void(0)的替代方案是什么?(对于主干和水疗场所),javascript,html,optimization,backbone.js,href,Javascript,Html,Optimization,Backbone.js,Href,在我的web应用程序中,很多功能都以链接的形式公开,其中onclick处理程序公开了这些功能,但实际的链接设置为javascript void(0),如下所示 <a href="javascript:void(0)" onclick="myApp.callJen(1303, this)" rel="nofollow">Call Jennifer</a> 当我的应用程序被注入到单页应用程序(SPA)中(如Backbone.js和Angular)时,这类链接似乎不起作用

在我的web应用程序中,很多功能都以链接的形式公开,其中onclick处理程序公开了这些功能,但实际的链接设置为javascript void(0),如下所示

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

当我的应用程序被注入到单页应用程序(SPA)中(如Backbone.js和Angular)时,这类链接似乎不起作用。有时,在这样的网站上点击这个链接会转到一个没有找到的实际页面(不知道为什么会这样)

无论如何,我应该如何更换这些网站的链接

让我们说,在这一点上,使用真正的URL或按钮不是一个选项

其他人也提出了类似的建议

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

或者

//取消单击事件
$('.cancel action')。单击(函数(){
警报(“发生取消操作!”);
});
{光标:指针;颜色:蓝色;}
a:hover,a.hover{文本装饰:下划线;}
取消此操作
老实说,我不喜欢这两种方法,所以你能提出更好的建议吗?

正确的方法是“阻止默认操作”。在jQuery事件处理程序中:
event.preventDefault()
或者干脆
返回false;

专家知识: 请注意,
void
是一个运算符,不需要括号。

正确的方法是“阻止默认操作”。在jQuery事件处理程序中:
event.preventDefault()
或干脆
返回false;

专家知识:
请注意,
void
是一个运算符,括号不是必需的。

这是一个老问题,但在搜索中出现了,因此我想添加我的见解

理想的解决方案是将所有
元素替换为
元素,然后将它们设置为链接样式,例如:

<button id="buttonLink" class="buttonLink" style="background: none;border: none; padding: 0; color: #069; text-decoration: underline; cursor: pointer;">LINK TEXT HERE</button>
此处链接文本

我不建议使用那样的内联样式,因此您可能希望将其移动到样式表中,但这是您需要的最小CSS。然后您将附加click事件(如果可以的话,您不应该使用onclick,而应该在脚本中添加EventListner,但这完全是另一个主题)让它执行您的功能。

这是一个老问题,但在搜索中出现了,所以我想我会添加我的见解

理想的解决方案是将所有
元素替换为
元素,然后将它们设置为链接样式,例如:

<button id="buttonLink" class="buttonLink" style="background: none;border: none; padding: 0; color: #069; text-decoration: underline; cursor: pointer;">LINK TEXT HERE</button>
此处链接文本

我不建议使用那样的内联样式,因此您可能希望将其移动到样式表中,但这是您需要的最小CSS。然后您将附加click事件(如果可以的话,您不应该使用onclick,而应该在脚本中添加EventListner,但这完全是另一个主题)让它执行您的功能。

使用
标记而不是
。您的web应用程序是什么,它使用的是什么?主干还是角度?当您的应用程序被注入时是什么意思?您是在开发JS组件吗?它是使用jQuery还是普通JS?使用
标记而不是
。您的web应用程序是什么,它是什么使用?主干还是角度?当你的应用被注入时,你是什么意思?你是在开发JS组件吗?它是使用jQuery还是普通JS?请注意,当你从锚中删除href时,浏览器不会将其正确地样式化为锚标记-因此基本上你会丢失link@ehab我的回答不建议删除t他href.Old answer,由于jQuery在这一点上几乎已经过时,我还要指出event.preventDefault()在ECMAScript(JS)中是标准的,因此不需要jQuery。另外,使用javascript:psudo协议,void(0)是必需的,因此在这种情况下,它需要按照所描述的方式工作。不建议使用它。最好的解决方案是使用它并重新设置其样式,使其看起来像Pointy建议的典型链接。请注意,当您从锚中删除href时,浏览器不会将其样式正确地设置为锚标记-因此基本上您会丢失 link@ehab我的回答不建议删除href.Old答案,因为jQuery在这一点上几乎已经过时,我还要指出event.preventDefault()在ECMAScript(JS)中是标准的,所以不需要jQuery。另外,使用javascript:psudo协议,void(0)是必需的,因此在这种情况下,它需要按照所描述的方式工作。不建议使用它。最好的解决方案是使用它,并将其重新设计为Pointy建议的典型链接。