【问题标题】:jQuery click() event inside another click() event won't work on mobile另一个 click() 事件中的 jQuery click() 事件在移动设备上不起作用
【发布时间】:2015-03-19 22:18:07
【问题描述】:

我希望制作一个从页面右侧滑出的移动菜单,在显示后显示相应的导航。我使用 sidr.js 插件来创建滑动过渡,并且所有导航都显示正常。我在计算机上拥有完整的移动菜单功能,而且它看起来很棒,并且可以按照我想要的方式运行。

但是,当我切换到手机并访问网站时,导航有一个重大缺陷。我在导航区域的顶部放置了一个按钮,单击该按钮会关闭侧边导航。以下是执行此任务的功能,在计算机上没问题。问题是它不能在手机上运行!!请帮忙,我很困惑为什么这不起作用。

$(document).on('click', 'a.btn.btn-default.mobile-btn', function(event) {
  event.preventDefault();
  $("#responsive-menu-button").click();
});

您也可以在http://mgm702.github.io 上实时查看问题,但您必须在移动设备上才能注意到问题。另外,我已经尝试了cursor: pointer; 选项等,但没有成功。

【问题讨论】:

    标签: javascript jquery html jquery-mobile mobile


    【解决方案1】:

    我找到了适合我特定情况的解决方案。我使用的是Sidr.js Plugin,其中一个功能是关闭菜单滑块的内置功能。我将此附加到我当前使用的功能上,这解决了问题。然后菜单与移动设备触摸界面一起工作。我的最终功能是这样的

    $(document).on('click touchstart', 'a.btn.btn-default.mobile-btn', function(event) {
      event.preventDefault();
      $.sidr('close','sidr-main'); 
    });
    

    我希望这个答案可以帮助将来处理这个问题的人!

    【讨论】:

      【解决方案2】:

      data-role="button" 添加到您的responsive-menu-button 应该可以完成这项工作。

      【讨论】:

      • 不幸的是没有用。如果您查看网站上的新代码,我已将 data-role="button" 添加到 responsive-menu-button 中,但它仍然无法在移动设备上运行。
      • 关闭事件是唯一不起作用的吗?你测试过其他事件吗?
      • 是的,点击事件是唯一不起作用的。我最初在函数内部设置了一个 fadeIn 和 fadeOut 事件,这样当您单击按钮时关闭菜单文本就会消失。我认为这是问题所在,所以我决定将其从函数中删除。但仍然没有帮助。
      • 您确定您使用的是正确的 jquery 移动插件吗?你试过tap吗? api.jquerymobile.com/tap
      • 是的,我试过taptrigger("click"),我也试过bind.on("click",function(){})。他们都没有执行所需的正确事件。
      猜你喜欢
      • 1970-01-01
      • 2015-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-15
      • 1970-01-01
      相关资源
      最近更新 更多