Zum Inhalt springen

imagecycle, superfish & stw_jquery_feedback parallel laufen lassen

Erstellt am 15. November 2012 · 2 Antworten · letzte Antwort am 15. November 2012

Tags: JavaScript & AJAX, Frage

icke_der_tolga ·

Typo3 4.7.5
Templavoila

Hallo Leute,

ich versuche die jquery-Extensions imagecycle und stw_jquery_feedback mit superfish Hovermenü-script (auch jquery) parallel laufen zu lassen. imagecycle und superfish kann ich nebeneinander laufen lassen, wenn ich für beide die gleiche jquery.min.js benutze. Doch wenn ich stw_jquery_feedback als Extension hinzufüge, dann funktioniert sowohl superfish, wie auch imagecycle nicht mehr. Jetzt habe ich heraufgefunden, dass es am folgenden Code liegt (wenn ich den weglasse, funktionieren imagecycle und superfish, aber dann natürlich stw_jquery_feedback nicht mehr).

<script type='text/javascript'>
jQuery.noConflict();
jQuery(document).ready(function() {
jQuery('.slide-out-div').css('display','');
jQuery('.slide-out-div').tabSlideOut({
  tabHandle: '.handle', 
  pathToTabImage: 'typo3conf/ext/stw_jquery_feedback/images/feedback-btn.png', //path to the image for the tab *required*
  imageWidth: '32px', 
  imageHeight: '167px', 
  tabLocation: 'right',
  speed: 300,
  action: 'click',
  topPos: '200px',
  fixedPosition: true,
  onLoadSlideOut: false
});
});
</script>

Ich vermute, dass sich dieser Code mit dem Initialisierungscode von imagecycle und von superfish beißt. Doch weiß ich nicht genau wo und wie.

Imagecycle:

<script type="text/javascript">
/*<![CDATA[*/
<!-- 
/*9fe1868e97d17c3d20f2157180f55141*/
jQuery(document).ready(function() {
	
	
	jQuery('#imagecycle_c51').show().cycle({
		fx: 'fade',
		easing: 'easeInOutBack',
		sync: true,
		random: true,
		cleartypeNoBg: false,
		before: function(a,n,o,f) {jQuery('div', this).css('display', 'none');},
		after: function(a,n,o,f) {jQuery('div', this).animate({opacity: 'show'},200,'swing');}
		
	});
	
	
	if (jQuery('#imagecycle_c51').width() > 0) {
		jQuery('#imagecycle_c51').parent().css('width', jQuery('#imagecycle_c51').width());
	}
	
	
	
	jQuery('div', jQuery('#imagecycle_c51')).show();
});

// -->
/*]]>*/
</script>

superfish:

<script type="text/javascript">
// initialise plugins
$(document).ready(function(){ 
        $("ul.sf-menu").supersubs({ 
            minWidth:    11,   // minimum width of sub-menus in em units 
            maxWidth:    27,   // maximum width of sub-menus in em units 
            extraWidth:  1     // extra width can ensure lines don't sometimes turn over 
                               // due to slight rounding differences and font-family 
        }).superfish({
				animation:   {opacity:'show',height:'show'},
				speed: 'fast'
			});  // call supersubs first, then superfish, so that subs are 
                         // not display:none when measuring. Call before initialising 
                         // containing tabs for same reason. 
    }); 
    

 
</script>

Kann mir wer weiterhelfen?
LG,
Tolga

SomehowLost ·

Hallo Tolga,

das liegt daran, dass stw_jquery_feedback mit jQuery.noConflict läuft, superfish jedoch nicht (da steht statt jQuery noch das $).
Also entweder Du stellst superfish ebenfalls auf noConflict (und zur Sicherheit imagecycle auch) um, oder Du schmeißt das noConflict aus stw_jquery_feedback raus, sofern Du nur jQuery als JS-Bibliothek nutzt.
Dann sollte auch alles parallel laufen.

Viele Grüße,
Andreas

icke_der_tolga ·

Jipppiii, das war die Lösung für das Problem *freu Vielen Dank @SomehowLost.. Es hatte nicht sofort funktioniert, weil in einer weiteren js-Datei auch ein noConflict-Code war und zwar in jquery.tabSlideOut.v1.3.js von stw_jquery_feedback. Ui ui ui, was so zwei Zeilen Code ausmachen können. :-)

Hoffen wir mal, dass jetzt die anderen Extensions noch funktionieren, wenn ich diese wieder anschalte. Aber Das Problem ist erstmal gelöst. Dank Dir! 😃