Helpdesk da PluGzOne, baseado no osTicket
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

82 lines
2.2 KiB

/*
* jQuery dropdown: A simple dropdown plugin
*
* Inspired by Bootstrap: http://twitter.github.com/bootstrap/javascript.html#dropdowns
*
* Copyright 2011 Cory LaViska for A Beautiful Site, LLC. (http://abeautifulsite.net/)
*
* Dual licensed under the MIT or GPL Version 2 licenses
*
*/
if(jQuery) (function($) {
$.extend($.fn, {
dropdown: function(method, data) {
switch( method ) {
case 'hide':
hideDropdowns();
return $(this);
case 'attach':
return $(this).attr('data-dropdown', data);
case 'detach':
hideDropdowns();
return $(this).removeAttr('data-dropdown');
case 'disable':
return $(this).addClass('dropdown-disabled');
case 'enable':
hideDropdowns();
return $(this).removeClass('dropdown-disabled');
}
}
});
function showMenu(event) {
var trigger = $(this),
dropdown = $( $(this).attr('data-dropdown') ),
isOpen = trigger.hasClass('dropdown-open'),
rtl = $('html').hasClass('rtl'),
relative = trigger.offsetParent(),
offset = relative.offset();
if (relative.get(0) !== document.body)
offset.top -= relative.scrollTop();
event.preventDefault();
event.stopPropagation();
hideDropdowns();
if( isOpen || trigger.hasClass('dropdown-disabled') ) return;
if (rtl && dropdown.hasClass('anchor-right'))
dropdown.removeClass('anchor-right');
dropdown.css({
left: -offset.left + (dropdown.hasClass('anchor-right') ?
trigger.offset().left - (dropdown.outerWidth() - trigger.outerWidth() - 4) : trigger.offset().left),
top: -offset.top + trigger.offset().top + trigger.outerHeight()
}).show();
trigger.addClass('dropdown-open');
}
function hideDropdowns(event) {
var targetGroup = event ? $(event.target).parents().addBack() : null;
if( targetGroup && targetGroup.is('.action-dropdown') && !targetGroup.is('a') ) return;
$('body')
.find('.action-dropdown').hide().end()
.find('[data-dropdown]').removeClass('dropdown-open');
}
$(function () {
$('body').on('click.dropdown', '[data-dropdown]', showMenu);
$('html').on('click.dropdown', hideDropdowns);
if(document.addEventListener) {
$(window).on('resize.dropdown', hideDropdowns);
}
});
})(jQuery);