From 0239a96b61aee0813bb6ba7d46b2fe13c5eb597e Mon Sep 17 00:00:00 2001 From: Djamil Legato Date: Wed, 6 Jul 2016 20:24:17 -0700 Subject: [PATCH] Fixed issue with anchors and Offcanvas not resetting the overlay in IE and Firefox (fixes #1399) --- CHANGELOG.md | 1 + assets/common/application/menu/index.js | 8 ++++++++ assets/common/js/main.js | 11 +++++++++++ 3 files changed, 20 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b8022911..b7cf55ef7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -42,6 +42,7 @@ - Fixed issues with single select field with multiple values (#1402) - Fixed `select.select` with `multiple` option enabled, storing only the first selected option rather than all (#1402) - Fixed DOM parser issue with HTML tags when adding inline JS/CSS (#1359) + - Fixed issue with anchors and Offcanvas not resetting the overlay in IE and Firefox (#1399) 2. [Joomla](#joomla) 1. [](#new) - Enable `Layout` tab for `Base Outline` diff --git a/assets/common/application/menu/index.js b/assets/common/application/menu/index.js index 6b3ffbd1f..52b81ea3b 100644 --- a/assets/common/application/menu/index.js +++ b/assets/common/application/menu/index.js @@ -74,6 +74,7 @@ var Menu = new prime({ } body.delegate('click', ':not(' + selectors.mainContainer + ') ' + selectors.linkedParent + ', .g-fullwidth .g-sublevel ' + selectors.linkedParent, this.bound('click')); + body.delegate('click', ':not(' + selectors.mainContainer + ') a[href]', this.bound('resetAfterClick')); if (hasTouchEvents || !this.hoverExpand) { var linkedParent = $(selectors.linkedParent); @@ -95,6 +96,13 @@ var Menu = new prime({ this.touchend(event); }, + resetAfterClick: function(event) { + this.closeDropdown(event); + if (global.G5 && global.G5.offcanvas) { + G5.offcanvas.close(); + } + }, + mouseenter: function(event) { var element = $(event.target); if (!element.parent(this.options.selectors.mainContainer)) { return; } diff --git a/assets/common/js/main.js b/assets/common/js/main.js index b8e7a8d17..f8b54a2bc 100644 --- a/assets/common/js/main.js +++ b/assets/common/js/main.js @@ -23,6 +23,7 @@ ready(function() { module.exports = window.G5 = instances; },{"./menu":2,"./offcanvas":3,"./totop":4,"./utils/dollar-extras":6,"domready":7}],2:[function(require,module,exports){ +(function (global){ "use strict"; var ready = require('domready'), @@ -99,6 +100,7 @@ var Menu = new prime({ } body.delegate('click', ':not(' + selectors.mainContainer + ') ' + selectors.linkedParent + ', .g-fullwidth .g-sublevel ' + selectors.linkedParent, this.bound('click')); + body.delegate('click', ':not(' + selectors.mainContainer + ') a[href]', this.bound('resetAfterClick')); if (hasTouchEvents || !this.hoverExpand) { var linkedParent = $(selectors.linkedParent); @@ -120,6 +122,13 @@ var Menu = new prime({ this.touchend(event); }, + resetAfterClick: function(event) { + this.closeDropdown(event); + if (global.G5 && global.G5.offcanvas) { + G5.offcanvas.close(); + } + }, + mouseenter: function(event) { var element = $(event.target); if (!element.parent(this.options.selectors.mainContainer)) { return; } @@ -350,6 +359,8 @@ var Menu = new prime({ module.exports = Menu; +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) + },{"../utils/dollar-extras":6,"domready":7,"elements/zen":36,"mout/function/bind":40,"mout/function/timeout":44,"prime":85,"prime-util/prime/bound":81,"prime-util/prime/options":82}],3:[function(require,module,exports){ // Offcanvas slide with desktop, touch and all-in-one touch devices support that supports both left and right placement. // Fast and optimized using CSS3 transitions