在调整大小时,jquery on('click')事件触发两次

时间:2017-11-08 10:10:14

标签: javascript jquery jquery-mobile

我在尝试调整浏览器大小时尝试修复移动导航时出现问题。基本上,每当我尝试调整浏览器大小时,slideUpslideDown会在同一时间被click事件触发。我该如何解决这个

    <ul class="menu">
        <li class="menu-item">
            <a href="/transition/inicio" data-drupal-link-system-path="node/26">INICIO</a>
        </li>
        <li class="menu-item">
            <a href="/transition/buscar-optica" data-drupal-link-system-path="node/27">BUSCAR ÓPTICA</a>
        </li>
        <li class="menu-item">
            <a href="/transition/quienes-somos" data-drupal-link-system-path="node/28">QUIÉNES SOMOS</a>
        </li>
        <li class="menu-item menu-item--expanded">
            <a data-drupal-link-system-path="node/29">SERVICIOS</a>
            <ul class="menu active" style="display: block; height: 194px; padding-top: 0px; margin-top: 0px; padding-bottom: 0px; margin-bottom: 0px;">
                <li class="menu-item">
                    <a href="/transition/como-funciona" data-drupal-link-system-path="node/42">Cómo funciona</a>
                </li>
                <li class="menu-item">
                    <a href="/transition/seguro" data-drupal-link-system-path="node/43">Seguro</a>
                </li>
                <li class="menu-item">
                    <a href="/transition/formas-pago" data-drupal-link-system-path="node/44">Formas de pago</a>
                </li>
                <li class="menu-item">
                    <a href="/transition/reclamaciones" data-drupal-link-system-path="node/45">Reclamaciones</a>
                </li>
                <li class="menu-item">
                    <a href="/transition/garantia" data-drupal-link-system-path="node/46">Garantía</a>
                </li>
                <li class="menu-item">
                    <a href="/transition/preguntas-frecuentes" data-drupal-link-system-path="node/47">Preguntas frecuentes</a>
                </li>
              </ul>
          </li>
      </ul>
    reformat : function() {
        this.winWidth = $(window).width();

        if (Global.winWidth <= 768) {

            $('.fa-bars').addClass('active').removeClass('inactive');

            $('.menu--main li.menu-item--expanded').unbind('mouseenter mouseleave');

            $('.menu--main li.menu-item--expanded').on('click touchstart', function(e) {

                e.preventDefault();

                $('> a', this).removeAttr('href');

                var item = $('ul.menu', this);

                if (!item.hasClass('active')) {
                    // Global.hideSubMenu();
                    setTimeout(function(){
                        item.stop(true).slideDown();
                        item.addClass('active');
                    },100);
                } else {
                    // Global.hideSubMenu();
                    item.stop(true).slideUp();
                    item.removeClass('active');
                }
            });

            if ($('.fa-times').hasClass('active')){
                $('.fa-bars').addClass('inactive');
            }

        } else {
            Global.hideMobileMenu();

            $('.fa-bars').removeClass('active').addClass('inactive');

            $('.menu--main li.menu-item--expanded').unbind('click');

            $('.menu--main li.menu-item--expanded').hover(function() {
                $('ul.menu', this).stop(true).slideDown();
            }, function() {
                $('ul.menu', this).stop(true).slideUp();
            });
        }
    }

}

0 个答案:

没有答案