Superfish Navigation / Subnavi bleibt aktiv

pixelpur

Mitglied
Hallo in die Runde,

ich hoffe einer hat diese Erfahrung auch schon einmal gemacht und kann mit weiterhelfen.

Ich habe in eine Contao Installation die Superfish Navigation inkludiert, was auch sauber funktioniert, nun habe ich jedoch das Problem, dass die Subnavi immer offen stehen bleibt. Sie sollte sich aber beim Klick auf den Navigationspunkt wieder ausblenden. Bin nun die Scripte durchgegangen habe jedoch keine Function zu diesem Thema gefunden.

Weiß jemand wo ich diese finde und was ich ggf. ändern muss? Würde mich sehr über eine Hilfestellung freuen. Bis dahin erst einmal allen einen schönen Start in den Tag.
 
Ich poste einmal die relevanten Quelltexte, da die Seite so noch nicht freigegeben ist:

Code:
<link rel="stylesheet" type="text/css" media="screen" href="tl_files/navconsult/css/superfish.css" /> 
<link rel="stylesheet" type="text/css" media="screen" href="tl_files/navconsult/css/superfish-navbar.css" />
<script type="text/javascript" src="tl_files/navconsult/js/jquery-1.2.6.min.js"></script>
<script type="text/javascript" src="tl_files/navconsult/js/superfish.js"></script>
<script type="text/javascript" src="tl_files/navconsult/js/hoverIntent.js"></script>
<script type="text/javascript"> 
jQuery.noConflict();
    jQuery(document).ready(function(){ 
        jQuery("ul.sf-menu").superfish({ 
            pathClass:  'current',
            autoArrows: false,
            pathLevels: 1,
            dropShadows: false
        }); 
    });
</script>

folgendes steht in meiner main superfish.js

/*
 * 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
 *
 * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt
 */

;(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		: 800,
		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);
 
Ok, durch einfaches testen kommt man dann doch ans Ziel, es lag an folgenden Script

Code:
<script type="text/javascript">
jQuery.noConflict();
jQuery(document).ready(function(){
jQuery("ul.sf-menu").superfish({
pathClass: 'current',
autoArrows: false,
pathLevels: 1,
dropShadows: false
});
});
</script>

Einfach durch das Initializierungsscript deines Links ersetzt und schon geht es. Vielen Dank
 

Neue Beiträge

Zurück