Jquery 每当我单击任何锚元素时,窗口都会在Mobile中跳到顶部。

Jquery 每当我单击任何锚元素时,窗口都会在Mobile中跳到顶部。,jquery,responsive-design,dropdown,preventdefault,Jquery,Responsive Design,Dropdown,Preventdefault,我正在制作响应式下拉菜单。它在笔记本电脑上运行得很好,但当我使用android手机点击下拉列表中的任何链接时,窗口会跳到顶部。我曾尝试在JQuery中使用preventDefault,但我认为下拉菜单是由CSS悬停操作支持的,这就是preventDefault方法不起作用的原因。知道我应该在JQuery中添加什么来防止这种情况吗,因为它非常烦人。 这里是链接。 我正在使用此脚本切换文本 $(document).ready(function(){ $(".show-men

我正在制作响应式下拉菜单。它在笔记本电脑上运行得很好,但当我使用android手机点击下拉列表中的任何链接时,窗口会跳到顶部。我曾尝试在JQuery中使用preventDefault,但我认为下拉菜单是由CSS悬停操作支持的,这就是preventDefault方法不起作用的原因。知道我应该在JQuery中添加什么来防止这种情况吗,因为它非常烦人。 这里是链接。

我正在使用此脚本切换文本

   $(document).ready(function(){

        $(".show-menu").click(function(){
            if ($(this).text() == "Show Menu")
               {
                   $(this).text("Close");    } else 
                   {
                       $(this).text("Show Menu");
                   };
            });


      });    

您可以使用
返回false.preventDefault()
之外,在
的末尾单击(){}
以阻止默认操作

这是有效的

$(document).ready(function(){

    $(".show-menu").click(function(e){
        if ($(this).text() == "Show Menu")
           {
               $(this).text("Close");    } else 
               {
                   $(this).text("Show Menu");
               };
        });
     e.preventDefault();
     return false;
  });    
或者,您可以使用下面的代码删除css文件中的悬停函数

$("#menu li").hover(function(){
    $(this).find("ul.hidden").fadeIn("fast");
}, function(){
    $(this).find("ul.hidden").fadeOut("fast");
});

您可以尝试:$('#menu a')。在('click')上,函数(e){e.preventDefault();}可以工作。我使用的是preventDefault方法,但我的方法不正确。:)有什么方法可以使菜单顺畅地打开和关闭?不要使用
anchor
标记,除非您希望它们被锚定到某个地方-另一页,当前页上的另一个地方。为什么不使用
span
按钮
元素?这样,您就不必在单击处理程序中使用
return false
e.preventDefault()
。我必须在此页面中使用锚定标记。因为我会将它们锚定到其他页面。但我会把你们的建议记在心里,以备将来之用:)我已经试过这种方法了。它不起作用。但是gaetanoM在第一条评论中提供的方法是有效的。有没有办法使菜单打开和关闭顺畅?到目前为止,它看起来相当流畅,但您是否尝试过悬停选项?试试这上面添加的代码我试过你的方法。我还添加了stop()方法。现在它工作顺利,我也在手机上检查过了。:)非常感谢