繁体   English   中英

阻止链接重新加载页面

[英]Prevent a link to reload page

我正在创建一个响应式菜单: Codepen演示

为避免单击链接时重新加载页面,我有:

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

但这似乎不起作用。 当我单击一个按钮时,菜单消失了。

有人知道我在做什么错吗?

不是元素需要.preventDefault() ,它是click event

尝试这个:

$('nav.menu a').click(function (event) {
  event.preventDefault();
  // or use return false;
});

我不建议您使用href作为选择器,最好给它一个idname

从MDN开始,关于.preventDefault():
如果可以取消事件,则将其取消,而不停止事件的进一步传播。


你可以在这里阅读更多:


有一种CSS方式,使用指针事件

因此,通过在CSS pointer-events: none; 所有点击将被忽略。 这是“最近的”替代方法,并在IE11 +,Firefox 3.6 +,Chrome 2.0 +,Safari 4+中得到支持。

只需返回false。

$('nav.menu a[href="#"]').click(function () {
  return false
});

这是在html中执行此操作的非常简单的方法。

<a class="font-weight-bold" href="javascript:void(0);"> Click Here </a>

这样使用:

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

尝试这个:

$('.menu a').click(function(e){
   e.preventDefault(); // stop the normal href from reloading the page.
});

有效的Codepen示例: http ://codepen.io/anon/pen/cynEg

您没有对包含的jquery库的引用。 另外,“查询”功能现在会引发错误,但preventDefault起作用。

编辑我已经注释掉第二个功能。

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

还有没有jQuery的内联选项:

<a href="javascript:function f(e){e.preventDefault();}">Link</a>

并且不要忘记,您已经在函数中使用了“ f”名称,所以不要这样命名其他函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM