1/* 2 * Superfish v1.4.1 - jQuery menu widget 3 * Copyright (c) 2007 Joel Birch 4 * 5 * Dual licensed under the MIT and GPL licenses: 6 * http://www.opensource.org/licenses/mit-license.php 7 * http://www.gnu.org/licenses/gpl.html 8 * 9 * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt 10 */ 11 12(function($){ 13 $.superfish = {}; 14 $.superfish.o = []; 15 $.superfish.op = {}; 16 $.superfish.defaults = { 17 hoverClass : 'sfHover', 18 pathClass : 'overideThisToUse', 19 delay : 800, 20 animation : {opacity:'show'}, 21 speed : 'normal', 22 oldJquery : false, /* set to true if using jQuery version below 1.2 */ 23 disableHI : false, /* set to true to disable hoverIntent usage */ 24 // callback functions: 25 onInit : function(){}, 26 onBeforeShow: function(){}, 27 onShow : function(){}, /* note this name changed ('onshow' to 'onShow') from version 1.4 onward */ 28 onHide : function(){} 29 }; 30 $.fn.superfish = function(op){ 31 var bcClass = 'sfbreadcrumb', 32 over = function(){ 33 var $$ = $(this), menu = getMenu($$); 34 getOpts(menu,true); 35 clearTimeout(menu.sfTimer); 36 $$.showSuperfishUl().siblings().hideSuperfishUl(); 37 }, 38 out = function(){ 39 var $$ = $(this), menu = getMenu($$); 40 var o = getOpts(menu,true); 41 clearTimeout(menu.sfTimer); 42 if ( !$$.is('.'+bcClass) ) { 43 menu.sfTimer=setTimeout(function(){ 44 $$.hideSuperfishUl(); 45 if (o.$path.length){over.call(o.$path);} 46 },o.delay); 47 } 48 }, 49 getMenu = function($el){ return $el.parents('ul.superfish:first')[0]; }, 50 getOpts = function(el,menuFound){ el = menuFound ? el : getMenu(el); return $.superfish.op = $.superfish.o[el.serial]; }, 51 hasUl = function(){ return $.superfish.op.oldJquery ? 'li[ul]' : 'li:has(ul)'; }; 52 53 return this.each(function() { 54 var s = this.serial = $.superfish.o.length; 55 var o = $.extend({},$.superfish.defaults,op); 56 o.$path = $('li.'+o.pathClass,this).each(function(){ 57 $(this).addClass(o.hoverClass+' '+bcClass) 58 .filter(hasUl()).removeClass(o.pathClass); 59 }); 60 $.superfish.o[s] = $.superfish.op = o; 61 62 $(hasUl(),this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out) 63 .not('.'+bcClass) 64 .hideSuperfishUl(); 65 66 var $a = $('a',this); 67 $a.each(function(i){ 68 var $li = $a.eq(i).parents('li'); 69 $a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);}); 70 }); 71 72 o.onInit.call(this); 73 74 }).addClass('superfish'); 75 }; 76 77 $.fn.extend({ 78 hideSuperfishUl : function(){ 79 var o = $.superfish.op, 80 $ul = $('li.'+o.hoverClass,this).add(this).removeClass(o.hoverClass) 81 .find('>ul').hide().css('visibility','hidden'); 82 o.onHide.call($ul); 83 return this; 84 }, 85 showSuperfishUl : function(){ 86 var o = $.superfish.op, 87 $ul = this.addClass(o.hoverClass) 88 .find('>ul:hidden').css('visibility','visible'); 89 o.onBeforeShow.call($ul); 90 $ul.animate(o.animation,o.speed,function(){ o.onShow.call(this); }); 91 return this; 92 } 93 }); 94 95 $(window).unload(function(){ 96 $('ul.superfish').each(function(){ 97 $('li',this).unbind('mouseover','mouseout','mouseenter','mouseleave'); 98 }); 99 }); 100})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.