﻿(function ($) { $.fn.MultiDropDown = function (menuSettings) { var mElement = $(this); var mDirection = "left"; var sThreeLeft = 0; var sOneTop = 0; var Settings = $.extend({ Transition: "none", TransitionSpeed: 500, ReactOn: "hover", Direction: "right" }, menuSettings || {}); if (Settings.Direction == "left") { mDirection = "right"; } sOneTop = $("li", mElement).height() + parseInt($("li", mElement).css("padding-top").replace("px")) + parseInt($("li", mElement).css("padding-bottom").replace("px")); $("li ul li", mElement).css("display", "inline").css("float", "left"); sThreeLeft = $("li ul li", mElement).width(); $("li ul li", mElement).css("display", "inline-block"); $(this).css("height", sOneTop + "px"); $(this).addClass("mulmentoptmp"); $("li", mElement).css("position", "relative").css("float", "left"); $("li ul", mElement).css("position", "absolute").css("z-index", "5").css("display", "none").css("top", sOneTop + "px").css(mDirection, "0px"); $("li ul li", mElement).css("float", "none"); $("li ul li ul", mElement).css(mDirection, sThreeLeft + "px").css("top", "0px"); if (Settings.ReactOn == "hover") { $("li", mElement).hover(function () { if (Settings.Transition == "fade") { $(this).children("ul").fadeIn(Settings.TransitionSpeed); } else if (Settings.Transition == "slide") { if ($(this).parent("ul").attr("class") == "mulmentoptmp") { $(this).children("ul").slideDown(Settings.TransitionSpeed); } else { $(this).children("ul").css("overflow", "hidden").css("width", "1px"); $(this).children("ul").animate({ width: sThreeLeft + "px" }, Settings.TransitionSpeed, function () { $(this).css("overflow", "visible") }); } } else { $(this).children("ul").show(); } }, function () { $(this).children("ul").hide(); }); } else if (Settings.ReactOn == "click") { $("li", mElement).click(function () { if (Settings.Transition == "fade") { $(this).children("ul").fadeIn(Settings.TransitionSpeed); } else if (Settings.Transition == "slide") { if ($(this).parent("ul").attr("class") == "mulmentoptmp") { $(this).children("ul").slideDown(Settings.TransitionSpeed); } else { $(this).children("ul").css("overflow", "hidden").css("width", "1px"); $(this).children("ul").animate({ width: sThreeLeft + "px" }, Settings.TransitionSpeed, function () { $(this).css("overflow", "visible") }); } } else { $(this).children("ul").show(); } }); $("li", mElement).hover(function () { }, function () { $(this).children("ul").hide(); }); } } })(jQuery);
