2016-07-14 56 views
-2
function() 
{ 
    $('body, .navbar-collapse div[role="search"] button[type="reset"]') 
     .on('click keyup', function (event) { 
      event.preventDefault(); 

      if (event.which == 27 && $('.navbar-collapse div[role="search"]') 
       .hasClass('active') || 
      $(event.currentTarget).attr('type') == 'reset') { 
      closeSearch(); 
          } 
          }); 
        closeSearch(); 

       function closeSearch() { 
     $('#navbar-searchform, #navbar-reset').addClass('hidden'); 
     var $form = $('.navbar-collapse div[role="search"].active') 
     $form.find('input').val(''); 

     $form.removeClass('active'); 
     $('#navbar-search').removeClass('hidden'); 
    } 
     // Show Search if form is not active // event.preventDefault() is important, this prevents the form from submitting 

    $(document).on('click',.navbar-collapse div[role="search"]:not(.active) button[type="submit"]', 

     function (event) { 
      event.preventDefault(); 
      var $form = $(this).closest('div[role="search"]'), 
       $input = $form.find('input'); 
      $form.addClass('active'); 
      $('#navbar-searchform, #navbar-reset') 
      .removeClass('hidden'); $input.focus(); 
      $(this).addClass('hidden'); 

     }); 

我想弄清楚这段代码有什么问题。这是为了使搜索表单隐藏起来,然后只有当我点击搜索按钮后才会出现。它的工作,但它最终影响了导航栏点,如果我点击任何东西,该页面不会加载,除非我打开它在一个新的选项卡。javascript文件中的错误

+0

'$(文件)。在( '点击',导航栏崩溃的div [角色= “搜索”]:没有(。主动)按钮[类型= “提交”]”,'那行应该在您的开发人员控制台中显示错误消息 – epascarello

回答

1

看看开发者控制台,你会看到错误Uncaught SyntaxError: Unexpected token .这是因为你错过了你的选择器字符串上的开头'

$(document).on('click',.navbar-collapse div[role="search"]:not(.active) button[type="submit"]', 
         ^^^ 
+0

为什么不直接输入错字?在评论中回答问题 – mplungjan

+0

并且我是撰写评论的人员......我将其作为错字关闭......并且我回答了......现在我评论了;) – epascarello

+0

哈哈。好。我懂了。 – mplungjan