1/*������� 2 * Superfish v1.4.8 - jQuery menu widget������� 3 * Copyright (c) 2008 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 * http://www.yaoyingying.com/css/jquery/superfish/#getting-started [china]������� 9 *������� 10 * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt������� 11 */������� 12������� 13;(function($){������� 14 $.fn.superfish = function(op){������� 15������� 16 var sf = $.fn.superfish,������� 17 c = sf.c,������� 18 $arrow = $(['<span class="',c.arrowClass,'"> »</span>'].join('')),������� 19 over = function(){������� 20 var $$ = $(this), menu = getMenu($$);������� 21 clearTimeout(menu.sfTimer);������� 22 $$.showSuperfishUl().siblings().hideSuperfishUl();������� 23 },������� 24 out = function(){������� 25 var $$ = $(this), menu = getMenu($$), o = sf.op;������� 26 clearTimeout(menu.sfTimer);������� 27 menu.sfTimer=setTimeout(function(){������� 28 o.retainPath=($.inArray($$[0],o.$path)>-1);������� 29 $$.hideSuperfishUl();������� 30 if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}������� 31 },o.delay); ������� 32 },������� 33 getMenu = function($menu){������� 34 var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0];������� 35 sf.op = sf.o[menu.serial];������� 36 return menu;������� 37 },������� 38 addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); };������� 39 ������� 40 return this.each(function() {������� 41 var s = this.serial = sf.o.length;������� 42 var o = $.extend({},sf.defaults,op);������� 43 o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){������� 44 $(this).addClass([o.hoverClass,c.bcClass].join(' '))������� 45 .filter('li:has(ul)').removeClass(o.pathClass);������� 46 });������� 47 sf.o[s] = sf.op = o;������� 48 ������� 49 $('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() {������� 50 if (o.autoArrows) addArrow( $('>a:first-child',this) );������� 51 })������� 52 .not('.'+c.bcClass)������� 53 .hideSuperfishUl();������� 54 ������� 55 var $a = $('a',this);������� 56 $a.each(function(i){������� 57 var $li = $a.eq(i).parents('li');������� 58 $a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});������� 59 });������� 60 o.onInit.call(this);������� 61 ������� 62 }).each(function() {������� 63 var menuClasses = [c.menuClass];������� 64 if (sf.op.dropShadows && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass);������� 65 $(this).addClass(menuClasses.join(' '));������� 66 });������� 67 };������� 68������� 69 var sf = $.fn.superfish;������� 70 sf.o = [];������� 71 sf.op = {};������� 72 sf.IE7fix = function(){������� 73 var o = sf.op;������� 74 if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined)������� 75 this.toggleClass(sf.c.shadowClass+'-off');������� 76 };������� 77 sf.c = {������� 78 bcClass : 'sf-breadcrumb',������� 79 menuClass : 'sf-js-enabled',������� 80 anchorClass : 'sf-with-ul',������� 81 arrowClass : 'sf-sub-indicator',������� 82 shadowClass : 'sf-shadow'������� 83 };������� 84 sf.defaults = {������� 85 hoverClass : 'sfHover',������� 86 pathClass : 'overideThisToUse',������� 87 pathLevels : 1,������� 88 delay : 350,������� 89 animation : {opacity:'show'},������� 90 speed : 'normal',������� 91 autoArrows : true,������� 92 dropShadows : true,������� 93 disableHI : false, // true disables hoverIntent detection������� 94 onInit : function(){}, // callback functions������� 95 onBeforeShow: function(){},������� 96 onShow : function(){},������� 97 onHide : function(){}������� 98 };������� 99 $.fn.extend({������� 100 hideSuperfishUl : function(){������� 101 var o = sf.op,������� 102 not = (o.retainPath===true) ? o.$path : '';������� 103 o.retainPath = false;������� 104 var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass)������� 105 .find('>ul').hide().css('visibility','hidden');������� 106 o.onHide.call($ul);������� 107 return this;������� 108 },������� 109 showSuperfishUl : function(){������� 110 var o = sf.op,������� 111 sh = sf.c.shadowClass+'-off',������� 112 $ul = this.addClass(o.hoverClass)������� 113 .find('>ul:hidden').css('visibility','visible');������� 114 sf.IE7fix.call($ul);������� 115 o.onBeforeShow.call($ul);������� 116 $ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); });������� 117 return this;������� 118 }������� 119 });������� 120������� 121})(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.