Team:METU-Ankara/Extras
From 2011.igem.org
/**
* nmcDropDown plugin - v1.0.5 * Author: Eli Van Zoeren * Copyright (c) 2009 New Media Campaigns * http://www.newmediacampaigns.com * --------------------------------------------- * Usage: $('#nav').nmcDropDown({[options]}); * * See below for configuration options. If you * don't pass in any options, the plugin will * Use reasonable defaults. * * Dependancy: jQuery 1.2.6+ * Optional depenancy: hoverIntent plugin * http://cherne.net/brian/resources/jquery.hoverIntent.html **/
(function($) {
$.fn.nmcDropDown = function(options) {
// build main options before element iteration var opts = $.extend({}, $.fn.nmcDropDown.defaults, options);
// iterate each matched element return this.each(function() { var menu = $(this); submenus = menu.children('li:has('+opts.submenu_selector+')'); if (opts.fix_IE) { // Fix IE 6+7 z-index bug menu.css('z-index', 51) .parents().each(function(i) { if ($(this).css('position') == 'relative') { $(this).css('z-index', (i + 52)); } }); submenus.children(opts.submenu_selector).css('z-index', 50); }
// Function that is called to show the submenu over = function(e) { $(e || this) .addClass(opts.active_class) .children(opts.submenu_selector).animate(opts.show, opts.show_speed); return false; }
// Function that is called to hide the submenu out = function(e) { $(e || this) .removeClass(opts.active_class) .children(opts.submenu_selector).animate(opts.hide, opts.hide_speed); return false; }
// Show and hide the sub-menus if (opts.trigger == 'click') { submenus .click(function(event) { if ($(event.target).parent().get(0) == this) { event.preventDefault(); $(this).hasClass(opts.active_class) ? out(this) : over(this); } }) .children(opts.submenu_selector).hide(); } else if ($().hoverIntent) { submenus .hoverIntent({ interval: opts.show_delay, over: over, timeout: opts.hide_delay, out: out }).children(opts.submenu_selector).hide(); } else { submenus .hover(over, out) .children(opts.submenu_selector).hide(); } }); };
// Default options $.fn.nmcDropDown.defaults = { trigger: 'hover', // Event to show and hide sub-menu - hover or click active_class: 'open', // Class to give open menu itemssubmenu_selector: 'ul', // The element immediately below the