2022-09-08 08:04:32 -07:00

69 lines
1.2 KiB
JavaScript

/**
* Hamburgers plugin helper.
*
* @author Htmlstream
* @version 1.0
* @requires hamburgers.min.css
*
*/
;(function($){
'use strict';
$.HSCore.helpers.HSHamburgers = {
/**
* Initialize 'hamburgers' plugin.
*
* @param String selector
*
* @return undefined;
*/
init: function(selector) {
if( !selector || !$(selector).length ) return;
var hamburgers = $(selector),
timeoutid;
hamburgers.each(function(i, el){
var $this = $(this);
if($this.closest('button').length) {
$this.closest('button').get(0).addEventListener('click', function(e){
var $self = $(this),
$hamburger = $self.find(selector);
if(timeoutid) clearTimeout(timeoutid);
timeoutid = setTimeout(function(){
$hamburger.toggleClass('is-active');
}, 10);
e.preventDefault();
}, false);
}
else {
$this.get(0).addEventListener('click', function(e){
var $self = $(this);
if(timeoutid) clearTimeout(timeoutid);
timeoutid = setTimeout(function(){
$self.toggleClass('is-active');
}, 10);
e.preventDefault();
}, false);
}
});
}
};
})(jQuery);