【问题标题】:How do I specify my toggle button to open for my menu? [closed]如何指定要为我的菜单打开的切换按钮? [关闭]
【发布时间】:2015-01-08 18:06:11
【问题描述】:

我正在尝试在您单击切换按钮 (http://international-aset.com/intaset/) 时打开我的移动导航;但是由于某种原因,当您单击按钮本身时它不起作用,但是当您单击按钮的 SURROUNDING 区域时它起作用。

编辑:我要做的是通过单击切换按钮打开导航,然后启用切换动画。现在,切换按钮有效,但是当我单击按钮时我的导航没有打开。我的导航打开的唯一时间是当我单击切换按钮周围的周围区域(空白区域)时。

我希望这更有意义,如果没有,请告诉我,我会尽力更清楚。

这是 HTML 代码:

<label for="toggle">
  <div class="menu-icon-container">
    <a href="#" class="menu-toggle" id="menu-toggle"><span></span></a>
  </div>
</label>

这里是 JS:

<script type="text/javascript">
  $( document ).ready( function( $ ) {
    $('.menu-icon-container').on('click', function(event) {
      document.getElementById('menu-toggle').addEventListener('click', function() {
        this.classList.toggle('menu-toggle-active');
      });
    });
  });
</script>

感谢您的帮助!

【问题讨论】:

  • 您正在添加 两个 点击处理程序。第一个只是为menu-toggle 项目添加了一个点击处理程序,它是第二个处理程序,它将让你的类切换。所以你需要点击两次:一次添加真正的点击处理程序,然后再次点击触发那个真正的处理程序。
  • 如果您使用 jQuery,则无需 addEventListener

标签: javascript jquery mobile menu toggle


【解决方案1】:

你可能只是想要这个:

$('#menu-toggle').click(function() {
    $(this).toggleClass('menu-toggle-active');
});

只有在页面加载时您的元素不存在时,您才真正需要 on()。如果您确实需要它,请执行以下操作:

$(document).on('click', '#menu-toggle', function() { ... });

【讨论】:

  • 这仍然不起作用。我仍然需要单击 btn 的周围区域(div class=menu-icon-container)才能打开导航。我希望能够通过简单地单击按钮而不是周围区域来打开导航
  • 我现在在你的网站上看不到这个。我看到了这个和你之前的代码的混合体。
  • 抱歉,我删除了它,因为它不起作用。我现在再添加一次
  • 我已经更新了。该代码允许切换动画,但除非我单击它,否则它不会打开导航
  • 您的问题不清楚的是点击时应该改变什么。请在那里澄清。我以为你只是在按钮上切换一个类,但显然这是不对的。
【解决方案2】:

尝试在点击事件后添加#menu-target

$('.menu-icon-container').on('click', function(event) {
    $("#menu-toggle").classList.toggle('menu-toggle-active');
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多