我正在创建一个响应式菜单:Codepen Demo
为了避免在我单击链接时重新加载页面,我有:
$('nav.menu a[href="#"]').click(function () {
$(this).preventDefault();
});
但这似乎不起作用。当我单击一个按钮时,菜单消失。
有谁知道我做错了什么?
我正在创建一个响应式菜单:Codepen Demo
为了避免在我单击链接时重新加载页面,我有:
$('nav.menu a[href="#"]').click(function () {
$(this).preventDefault();
});
但这似乎不起作用。当我单击一个按钮时,菜单消失。
有谁知道我做错了什么?
需要 a 的不是元素,而是.preventDefault()
click event
。
尝试这个:
$('nav.menu a').click(function (event) {
event.preventDefault();
// or use return false;
});
我不建议使用href
as 选择器,最好给它一个id
or name
。
来自 MDN,关于 .preventDefault():
如果事件可取消,则 取消该事件,而不停止该事件的进一步传播。
你可以在这里阅读更多:
因此,通过在 CSS 中使用,pointer-events: none;
所有点击都将被忽略。这是一个“最近的”替代方案,并在 IE11+、Firefox 3.6+、Chrome 2.0+、Safari 4+ 中得到支持。
这是在 html 中执行此操作的非常简单的方法。
<a class="font-weight-bold" href="javascript:void(0);"> Click Here </a>
只返回假。
$('nav.menu a[href="#"]').click(function () {
return false
});
像这样使用:
$('nav.menu a[href="#"]').click(function (event) {
event.preventDefault();
});
$('nav.menu a[href="#"]').click(function (e) {
e.preventDefault();
});
尝试这个:
$('.menu a').click(function(e){
e.preventDefault(); // stop the normal href from reloading the page.
});
工作代码笔示例: http ://codepen.io/anon/pen/cynEg
您没有引用包含的 jquery 库。此外,“查询”功能现在会引发错误,但 preventDefault 正在工作。
编辑我已经注释掉了第二个函数。
还有一个没有 jQuery 的内联选项:
<a href="javascript:function f(e){e.preventDefault();}">Link</a>
并且不要忘记,您已经使用了“f”名称来命名函数,所以不要像这样命名其他函数。