Don't close when clicking on disabled or headings

This commit is contained in:
Cory LaViska
2017-08-31 12:17:29 -04:00
parent 87c74a6e1c
commit 041c13b92d
2 changed files with 16 additions and 14 deletions

2
dist/shoelace.js vendored
View File

@@ -5,7 +5,7 @@
Released under the MIT license
Source: https://github.com/claviska/shoelace-css
*/
!function(){"use strict";if("undefined"==typeof jQuery&&"undefined"==typeof Zepto)throw new Error("Shoelace dropdowns require either jQuery or Zepto.");("function"==typeof jQuery?jQuery:Zepto)(function(e){e(document).on("click",function(t){var i=e(t.target).closest(".dropdown").get(0),r=i?e(t.target).closest(".dropdown-trigger").get(0):null,o=(i?e(t.target).closest(".dropdown-menu").get(0):null)?e(t.target).closest("a").get(0):null;if(r){if(e(".dropdown.active").not(i).removeClass("active").trigger("hide"),e(r).is(".disabled, :disabled"))return;e(i).toggleClass("active").trigger(e(i).is(".active")?"show":"hide")}else{if(o)return e(i).removeClass("active").trigger("hide"),e(o).is(".disabled")||e(i).trigger("select",o),void t.preventDefault();e(".dropdown.active").removeClass("active").trigger("hide")}}).on("keydown",function(t){27===t.keyCode&&e(".dropdown.active").removeClass("active").trigger("hide")})})}(),/*!
!function(){"use strict";if("undefined"==typeof jQuery&&"undefined"==typeof Zepto)throw new Error("Shoelace dropdowns require either jQuery or Zepto.");("function"==typeof jQuery?jQuery:Zepto)(function(e){e(document).on("click",function(t){var i=e(t.target).closest(".dropdown").get(0),r=i?e(t.target).closest(".dropdown-trigger").get(0):null,o=(i?e(t.target).closest(".dropdown-menu").get(0):null)?e(t.target).closest("a").get(0):null;if(r){if(e(".dropdown.active").not(i).removeClass("active").trigger("hide"),e(r).is(".disabled, :disabled"))return;e(i).toggleClass("active").trigger(e(i).is(".active")?"show":"hide")}else if(o){if(t.preventDefault(),e(o).is(".disabled"))return;e(i).removeClass("active").trigger("hide").trigger("select",o)}else i||e(".dropdown.active").removeClass("active").trigger("hide")}).on("keydown",function(t){27===t.keyCode&&e(".dropdown.active").removeClass("active").trigger("hide")})})}(),/*!
Shoelace.css tabs 1.0.0-beta22
(c) A Beautiful Site, LLC

View File

@@ -65,25 +65,27 @@
// If the user selected a menu item, close the dropdown and fire the select event
if(selectedItem) {
$(dropdown)
.removeClass('active')
.trigger('hide');
// Don't select disabled menu items
if(!$(selectedItem).is('.disabled')) {
$(dropdown).trigger('select', selectedItem);
}
// Prevent the page from scrolling since menu items are #links
event.preventDefault();
// Don't select disabled menu items
if($(selectedItem).is('.disabled')) return;
// Trigger a selection
$(dropdown)
.removeClass('active')
.trigger('hide')
.trigger('select', selectedItem);
return;
}
// If the user didn't click a trigger or a menu item, hide any active dropdowns
$('.dropdown.active')
.removeClass('active')
.trigger('hide');
// If the click wasn't in a dropdown, hide any active dropdowns
if(!dropdown) {
$('.dropdown.active')
.removeClass('active')
.trigger('hide');
}
})
.on('keydown', function(event) {
// Close dropdowns on escape