Hmmm.... At the risk of starting another flame war on the etiquette of dealing with user queries:
http://lmgtfy.com/?q=superfish+display+menu+on+click+not+hover :-) -- Evolution (n): A hypothetical process whereby infinitely improbable events occur with alarming frequency, order arises from chaos, and no one is given credit. On 8 September 2011 05:48, Samuel Alioni <[email protected]> wrote: > Hello, i am quite new to javascript and jquery, but now found myself in a > trap with superfish menu. I want superfish to expand my primary menu and > display submenu items as well but only after selecting the appropriate menu > and not to move away until another selection is made. But currently submenus > are displayed onHover only. > > Can some one help please? here is the superfishmenu js script. > > > /* > * Superfish v1.4.8 - jQuery menu widget > * Copyright (c) 2008 Joel Birch > * > * Dual licensed under the MIT and GPL licenses: > * http://www.opensource.org/licenses/mit-license.php > * http://www.gnu.org/licenses/gpl.html > * > */ > > ;(function($){ > $.fn.superfish = function(op){ > > var sf = $.fn.superfish, > c = sf.c, > $arrow = $(['<span > class="',c.arrowClass,'"></span>'].join('')), > over = function(){ > var $$ = $(this), menu = getMenu($$); > clearTimeout(menu.sfTimer); > $$.showSuperfishUl().siblings().hideSuperfishUl(); > }, > out = function(){ > var $$ = $(this), menu = getMenu($$), o = sf.op; > clearTimeout(menu.sfTimer); > menu.sfTimer=setTimeout(function(){ > o.retainPath=($.inArray($$[0],o.$path)>-1); > $$.hideSuperfishUl(); > if (o.$path.length && > $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);} > },o.delay); > }, > getMenu = function($menu){ > var menu = > $menu.parents(['ul.',c.menuClass,':first'].join(''))[0]; > sf.op = sf.o[menu.serial]; > return menu; > }, > addArrow = function($a){ > $a.addClass(c.anchorClass).append($arrow.clone()); }; > > return this.each(function() { > var s = this.serial = sf.o.length; > var o = $.extend({},sf.defaults,op); > o.$path = > $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){ > $(this).addClass([o.hoverClass,c.bcClass].join(' ')) > .filter('li:has(ul)').removeClass(o.pathClass); > }); > sf.o[s] = sf.op = o; > > $('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? > 'hoverIntent' : 'hover'](over,out).each(function() { > if (o.autoArrows) addArrow( $('>a:first-child',this) ); > }) > .not('.'+c.bcClass) > .hideSuperfishUl(); > > var $a = $('a',this); > $a.each(function(i){ > var $li = $a.eq(i).parents('li'); > > $a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);}); > }); > o.onInit.call(this); > > }).each(function() { > var menuClasses = [c.menuClass]; > if (sf.op.dropShadows && !($.browser.msie && $.browser.version > < 7)) menuClasses.push(c.shadowClass); > $(this).addClass(menuClasses.join(' ')); > }); > }; > > var sf = $.fn.superfish; > sf.o = []; > sf.op = {}; > sf.IE7fix = function(){ > var o = sf.op; > if ($.browser.msie && $.browser.version > 6 && o.dropShadows && > o.animation.opacity!=undefined) > this.toggleClass(sf.c.shadowClass+'-off'); > }; > sf.c = { > bcClass : 'sf-breadcrumb', > menuClass : 'sf-js-enabled', > anchorClass : 'sf-with-ul', > arrowClass : 'sf-sub-indicator', > shadowClass : 'sf-shadow' > }; > sf.defaults = { > hoverClass : 'sfHover', > pathClass : 'overideThisToUse', > pathLevels : 1, > delay : 0, > animation : {opacity:'show'}, > speed : 'normal', > autoArrows : true, > dropShadows : true, > disableHI : false, // true disables hoverIntent detection > onInit : function(){}, // callback functions > onBeforeShow: function(){}, > onShow : function(){}, > onHide : function(){} > }; > $.fn.extend({ > hideSuperfishUl : function(){ > var o = sf.op, > not = (o.retainPath===true) ? o.$path : ''; > o.retainPath = false; > var $ul = > $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass) > .find('>ul').hide().css('visibility','hidden'); > o.onHide.call($ul); > return this; > }, > showSuperfishUl : function(){ > var o = sf.op, > sh = sf.c.shadowClass+'-off', > $ul = this.addClass(o.hoverClass) > .find('>ul:hidden').css('visibility','visible'); > sf.IE7fix.call($ul); > o.onBeforeShow.call($ul); > $ul.animate(o.animation,o.speed,function(){ > sf.IE7fix.call($ul); o.onShow.call($ul); }); > return this; > } > }); > > })(jQuery); > > -- > *Regards > Samuel Alioni > ====================================================================== > > Own a Beautiful website today at an incredibly low price. > Take that advantage today Contact us Now at: > * > > Room A15 Kabalagala Market > P.O.Box 8747 Kampala > +256 712 886802,772044264 > Website: www.samatechcomputers.com > Email: [email protected] > Skype: samatech3 > Facebook:www.facebook.com/samatech > Twitter: www.twitter.com/samatech7 > > > > _______________________________________________ > The Uganda Linux User Group: http://linux.or.ug > > Send messages to this mailing list by addressing e-mails to: > [email protected] > Mailing list archives: http://www.mail-archive.com/[email protected]/ > Mailing list settings: http://kym.net/mailman/listinfo/lug > To unsubscribe: http://kym.net/mailman/options/lug > > The Uganda LUG mailing list is generously hosted by INFOCOM: > http://www.infocom.co.ug/ > > The above comments and data are owned by whoever posted them (including > attachments if any). The mailing list host is not responsible for them in > any way. >
_______________________________________________ The Uganda Linux User Group: http://linux.or.ug Send messages to this mailing list by addressing e-mails to: [email protected] Mailing list archives: http://www.mail-archive.com/[email protected]/ Mailing list settings: http://kym.net/mailman/listinfo/lug To unsubscribe: http://kym.net/mailman/options/lug The Uganda LUG mailing list is generously hosted by INFOCOM: http://www.infocom.co.ug/ The above comments and data are owned by whoever posted them (including attachments if any). The mailing list host is not responsible for them in any way.
