From f5c794608e58d0cdcb3baf5261297533d243cce9 Mon Sep 17 00:00:00 2001 From: neil-h Date: Mon, 18 Aug 2014 16:36:57 -0700 Subject: [PATCH 1/4] Prevent acting on navbar in collapsed mode Added a setting for navbar breakpoint in defaults Added check in openDropdown to see if dropdown is a descendant of .navbar-collapse and window width is less than the navbar breakpoint --- bootstrap-hover-dropdown.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/bootstrap-hover-dropdown.js b/bootstrap-hover-dropdown.js index b1f5902..9b05bc8 100644 --- a/bootstrap-hover-dropdown.js +++ b/bootstrap-hover-dropdown.js @@ -30,7 +30,8 @@ $parent = $this.parent(), defaults = { delay: 500, - instantlyCloseOthers: true + instantlyCloseOthers: true, + navBreakpoint: 768 }, data = { delay: $(this).data('delay'), @@ -90,6 +91,10 @@ }); function openDropdown(event) { + if ( ($( window ).width() < settings.navBreakpoint ) && ($this.parents('.navbar-collapse').length) ){//prevent acting on navbar in collapsed mode + return; + } + $allDropdowns.find(':focus').blur(); if(settings.instantlyCloseOthers === true) From 60b5392c4009185ae1788ff671afee1503b6d564 Mon Sep 17 00:00:00 2001 From: neil-h Date: Mon, 18 Aug 2014 16:41:04 -0700 Subject: [PATCH 2/4] fixed indenting changed from tabs to 4 spaces --- bootstrap-hover-dropdown.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bootstrap-hover-dropdown.js b/bootstrap-hover-dropdown.js index 9b05bc8..0afbc14 100644 --- a/bootstrap-hover-dropdown.js +++ b/bootstrap-hover-dropdown.js @@ -31,7 +31,7 @@ defaults = { delay: 500, instantlyCloseOthers: true, - navBreakpoint: 768 + navBreakpoint: 768 }, data = { delay: $(this).data('delay'), @@ -91,9 +91,9 @@ }); function openDropdown(event) { - if ( ($( window ).width() < settings.navBreakpoint ) && ($this.parents('.navbar-collapse').length) ){//prevent acting on navbar in collapsed mode - return; - } + if ( ($( window ).width() < settings.navBreakpoint ) && ($this.parents('.navbar-collapse').length) ){//prevent acting on navbar in collapsed mode + return; + } $allDropdowns.find(':focus').blur(); From d0320cbb8a1b08078aee15de9d9aac4182b0b4a4 Mon Sep 17 00:00:00 2001 From: neil-h Date: Wed, 22 Oct 2014 16:02:37 -0700 Subject: [PATCH 3/4] changed from variable to .navbar-toggle visibility Instead of having a variable for nav breakpoint we now check if .navbar-toggle is visible. We also have added the check to the close on mouseout, so the menu doesn't close when we hover outside the submenu. Made a function isCollapsed so we can have our logic in one place. --- bootstrap-hover-dropdown.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/bootstrap-hover-dropdown.js b/bootstrap-hover-dropdown.js index 0afbc14..d602ba4 100644 --- a/bootstrap-hover-dropdown.js +++ b/bootstrap-hover-dropdown.js @@ -30,8 +30,7 @@ $parent = $this.parent(), defaults = { delay: 500, - instantlyCloseOthers: true, - navBreakpoint: 768 + instantlyCloseOthers: true }, data = { delay: $(this).data('delay'), @@ -54,6 +53,7 @@ openDropdown(event); }, function () { + if ( isCollapsed ){ return; } timeout = window.setTimeout(function () { $parent.removeClass('open'); $this.trigger(hideEvent); @@ -91,9 +91,7 @@ }); function openDropdown(event) { - if ( ($( window ).width() < settings.navBreakpoint ) && ($this.parents('.navbar-collapse').length) ){//prevent acting on navbar in collapsed mode - return; - } + if ( isCollapsed ){ return; } $allDropdowns.find(':focus').blur(); @@ -104,6 +102,12 @@ $parent.addClass('open'); $this.trigger(showEvent); } + + function isCollapsed() { + if ( ($(".navbar-toggle").filter(":visible").length ) && ($this.parents('.navbar-collapse').length) ){//prevent acting on navbar in collapsed mode + return true; + } + } }); }; From 5ed1400b173dc64bd72510bb1208e068b1f4a47f Mon Sep 17 00:00:00 2001 From: neil-h Date: Wed, 22 Oct 2014 16:24:55 -0700 Subject: [PATCH 4/4] fixed syntax error Was: if ( isCollapsed ){ return; } Now: if ( isCollapsed() ){ return; } --- bootstrap-hover-dropdown.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bootstrap-hover-dropdown.js b/bootstrap-hover-dropdown.js index d602ba4..58f23d2 100644 --- a/bootstrap-hover-dropdown.js +++ b/bootstrap-hover-dropdown.js @@ -53,7 +53,7 @@ openDropdown(event); }, function () { - if ( isCollapsed ){ return; } + if ( isCollapsed() ){ return; } timeout = window.setTimeout(function () { $parent.removeClass('open'); $this.trigger(hideEvent); @@ -91,7 +91,7 @@ }); function openDropdown(event) { - if ( isCollapsed ){ return; } + if ( isCollapsed() ){ return; } $allDropdowns.find(':focus').blur();