69 lines
No EOL
2.3 KiB
JavaScript
69 lines
No EOL
2.3 KiB
JavaScript
'use strict';
|
|
|
|
!function ($) {
|
|
|
|
var Nest = {
|
|
Feather: function (menu) {
|
|
var type = arguments.length <= 1 || arguments[1] === undefined ? 'zf' : arguments[1];
|
|
|
|
menu.attr('role', 'menubar');
|
|
|
|
var items = menu.find('li').attr({ 'role': 'menuitem' }),
|
|
subMenuClass = 'is-' + type + '-submenu',
|
|
subItemClass = subMenuClass + '-item',
|
|
hasSubClass = 'is-' + type + '-submenu-parent';
|
|
|
|
menu.find('a:first').attr('tabindex', 0);
|
|
|
|
items.each(function () {
|
|
var $item = $(this),
|
|
$sub = $item.children('ul');
|
|
|
|
if ($sub.length) {
|
|
$item.addClass(hasSubClass).attr({
|
|
'aria-haspopup': true,
|
|
'aria-expanded': false,
|
|
'aria-label': $item.children('a:first').text()
|
|
});
|
|
|
|
$sub.addClass('submenu ' + subMenuClass).attr({
|
|
'data-submenu': '',
|
|
'aria-hidden': true,
|
|
'role': 'menu'
|
|
});
|
|
}
|
|
|
|
if ($item.parent('[data-submenu]').length) {
|
|
$item.addClass('is-submenu-item ' + subItemClass);
|
|
}
|
|
});
|
|
|
|
return;
|
|
},
|
|
Burn: function (menu, type) {
|
|
var items = menu.find('li').removeAttr('tabindex'),
|
|
subMenuClass = 'is-' + type + '-submenu',
|
|
subItemClass = subMenuClass + '-item',
|
|
hasSubClass = 'is-' + type + '-submenu-parent';
|
|
|
|
menu.find('*').removeClass(subMenuClass + ' ' + subItemClass + ' ' + hasSubClass + ' is-submenu-item submenu is-active').removeAttr('data-submenu').css('display', '');
|
|
|
|
// console.log( menu.find('.' + subMenuClass + ', .' + subItemClass + ', .has-submenu, .is-submenu-item, .submenu, [data-submenu]')
|
|
// .removeClass(subMenuClass + ' ' + subItemClass + ' has-submenu is-submenu-item submenu')
|
|
// .removeAttr('data-submenu'));
|
|
// items.each(function(){
|
|
// var $item = $(this),
|
|
// $sub = $item.children('ul');
|
|
// if($item.parent('[data-submenu]').length){
|
|
// $item.removeClass('is-submenu-item ' + subItemClass);
|
|
// }
|
|
// if($sub.length){
|
|
// $item.removeClass('has-submenu');
|
|
// $sub.removeClass('submenu ' + subMenuClass).removeAttr('data-submenu');
|
|
// }
|
|
// });
|
|
}
|
|
};
|
|
|
|
Foundation.Nest = Nest;
|
|
}(jQuery); |