Sindbad~EG File Manager
jQuery(document).ready(function(jQuery) {
var window_w = jQuery(window).width();
var device = detectMobileBrowser();
if (window_w >= 980 && device) {
// First level
jQuery('.dropdown > a').bind('tap', detectTap);
// Deeper levels
jQuery('.dropdown-submenu > a').bind('tap', detectTap);
jQuery('body').bind( 'tap', closeDropdowns);
}
jQuery(window).resize(function() {
window_w = jQuery(window).width();
if (window_w >= 980 && device) {
// First level
jQuery('.dropdown > a').bind('tap', detectTap);
// Deeper levels
jQuery('.dropdown-submenu > a').bind('tap', detectTap);
jQuery('body').bind( 'tap', closeDropdowns);
} else {
// First level
jQuery('.dropdown > a').unbind('tap', detectTap);
// Deeper levels
jQuery('.dropdown-submenu > a').unbind('tap', detectTap);
jQuery('body').unbind('tap', closeDropdowns);
}
});
});
function detectMobileBrowser() {
if (/Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini|Mobile|mobile/i.test(navigator.userAgent))
return true;
return false;
}
function detectTap(event) {
var clickedElement = jQuery(event.target);
var parentElement = jQuery(clickedElement.parent());
var dropdown = parentElement.find('.dropdown-menu').first();
var isLink = clickedElement.attr('href');
// Close other opened dropdowns
if (isLink) {
if (parentElement.hasClass('dropdown')) {
jQuery('.dropdown').each(function() {
var dropdown = jQuery(this).find('.dropdown-menu');
if (dropdown.css('display') == 'block' && parentElement.attr("class") !== dropdown.parent().attr("class") && dropdown.parent().hasClass("current")) {
dropdown.css('display', 'none');
} else if (dropdown.css('display') == 'block' && parentElement.attr("class") !== dropdown.parent().attr("class")) {
dropdown.parent().removeClass('active');
dropdown.css('display', 'none');
}
});
}
}
// First tap -> open dropdown and second tap -> open dropdown parent url
if ((parentElement.hasClass('dropdown') || parentElement.hasClass('dropdown-submenu')) && parentElement.hasClass('active') && dropdown.css('display') == 'block') {
return true;
} else if (parentElement.hasClass('dropdown') || parentElement.hasClass('dropdown-submenu')) {
parentElement.addClass('active');
parentElement.find('.dropdown-menu').first().css('display', 'block');
return false;
}
}
function closeDropdowns(event) {
var clickedElement = jQuery(event.target);
var parentElement = clickedElement.parent();
var isLink = clickedElement.attr('href');
// Close dropdowns when the tap is outside the menu
if (!isLink) {
if (!parentElement.hasClass('dropdown') || !parentElement.hasClass('dropdown-submenu')) {
jQuery('.dropdown').each(function() {
var dropdown = jQuery(this).find('.dropdown-menu');
if (dropdown.css('display') == 'block' && dropdown.parent().hasClass('current')) {
dropdown.css('display', 'none');
} else if (dropdown.css('display') == 'block') {
dropdown.parent().removeClass('active');
dropdown.css('display', 'none');
}
});
}
}
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists