0byt3m1n1
Path:
/
var
/
www
/
clients
/
client38
/
web37
/
web
/
wp-content
/
themes
/
Impreza
/
common
/
js
/
elements
/
[
Home
]
File: dropdown.js
/** * UpSolution Element: Dropdown */ ( function( $ ) { "use strict"; $.fn.wDropdown = function() { return this.each( function() { var $this = $( this ), $list = $this.find( '.w-dropdown-list' ), $current = $this.find( '.w-dropdown-current' ), $currentAnchor = $current.find( 'a' ), $anchors = $this.find( 'a' ), openEventName = 'click', closeEventName = 'mouseup touchstart mousewheel DOMMouseScroll touchstart', justOpened = false; if ( $this.hasClass( 'open_on_hover' ) ) { openEventName = 'mouseenter'; closeEventName = 'mouseleave'; } var closeList = function() { $this.removeClass( 'opened' ); $us.$window.off( closeEventName, closeListEvent ); }; var closeListEvent = function( e ) { if ( closeEventName != 'mouseleave' && $this.has( e.target ).length !== 0 ) { return; } e.stopPropagation(); e.preventDefault(); closeList(); }; var openList = function() { $this.addClass( 'opened' ); if ( closeEventName == 'mouseleave' ) { $this.on( closeEventName, closeListEvent ); } else { $us.$window.on( closeEventName, closeListEvent ); } justOpened = true; $us.timeout( function() { justOpened = false; }, 500 ); }; var openListEvent = function( e ) { if ( openEventName == 'click' && $this.hasClass( 'opened' ) && ! justOpened ) { closeList(); return; } openList(); }; $current.on( openEventName, openListEvent ); $anchors.on( 'focus.upsolution', function() { openList(); } ); $this.on( 'keydown', function( e ) { var keyCode = e.keyCode || e.which; if ( keyCode == 9 ) { var $target = $( e.target ) || {}, index = $anchors.index( $target ); if ( e.shiftKey ) { if ( index === 0 ) { closeList(); } } else { if ( index === $anchors.length - 1 ) { closeList(); } } } } ); } ); }; $( function() { $( '.w-dropdown' ).wDropdown(); } ); } )( jQuery );