【问题标题】:Close of menu and icon image when click on another menu? [duplicate]单击另一个菜单时关闭菜单和图标图像? [复制]
【发布时间】:2016-09-21 18:11:35
【问题描述】:

点击汉堡菜单时,搜索菜单应关闭,其图标应为搜索而不是十字,点击搜索菜单时,汉堡菜单应关闭,图标转换为汉堡而不是十字。'

// Mobile/tablet navigation (clicks, taps)              
$('.toggle-sm-nav, .js-toggle-sm-navigation').click(function(){

                    // Change button
                    $(this).children('span').toggleClass('glyphicon-align-justify icon-close-menu-cross2');

                    // Toggle menu on hamburger
                    $('.navcontainer').toggle();
                    $('.header-nav-container').toggleClass('brgropen');

                    if( $('.header-nav-container').hasClass('brgropen') ){
                        $('body').css('overflow', 'hidden');
                    } else {
                        $('body').css('overflow', 'visible');
                    }

另一个菜单搜索

打开时的焦点搜索字段

    $('.js-toggle-xs-search').on('click', function(){
        $('.sm-searchboxc input#search').trigger('touchstart');
    });

【问题讨论】:

  • 您能否分享您的完整代码或在 jsfiddle 或任何此类中创建场景...
  • 我同意,我不太明白这个问题。我不确定 setTimeout 函数与什么有关。

标签: jquery css mobile


【解决方案1】:
       if ($('.xs-search > button > span').hasClass('icon-close-menu-cross2')) {
         $('.xs-search > button > span').removeClass('icon-close-menu-cross2').addClass('icon-search');
         $('.sm-searchboxc input#search').hide();
         $('.searchboxc').find('.site-search').removeClass('active');
       }
       $('.navcontainer').toggle();
       $('.header-nav-container').toggleClass('brgropen');
       if ($('.header-nav-container').hasClass('brgropen'))

         $('.js-toggle-xs-search').on('click', function() {
         var width = $(window).width();
         if (width <= 968) {
           if ($('.sm-searchboxc input#search').hide()) {
             $('.sm-searchboxc input#search').show();
           } else if ($('.xs-search > button > span').hasClass('icon-close-menu-cross2')) {
             $('.sm-searchboxc input#search').trigger('touchstart');
           }
           if ($('.header-nav-container').hasClass('brgropen')) {
             $('.toggle-sm-nav, .js-toggle-sm-navigation').children('span').toggleClass('glyphicon-align-justify icon-close-menu-cross2');
             $('.navcontainer').hide();
             $('.header-nav-container').removeClass('brgropen');
           }
         } else {
           $('.sm-searchboxc input#search').trigger('touchstart');
         }
       });
       $('.sm-searchboxc input#search').on('touchstart', function() {
             setTimeout(function() {
                   $('.sm-searchboxc input#search').focus();

【讨论】:

  • 请不要发布您的完整代码作为答案。请改为编辑您的原始问题。
  • @MERose:看起来这是问题的解决方案,所以应该作为答案发布。如果没有解释发生了什么变化,那么它对其他人没有用。
  • 好的,看起来这是对该问题的第一条评论的反应。但我第二,没有解释的答案是没有用的。
猜你喜欢
  • 2015-07-13
  • 1970-01-01
  • 1970-01-01
  • 2016-12-21
  • 2014-07-31
  • 1970-01-01
  • 1970-01-01
  • 2017-07-01
相关资源
最近更新 更多