jQuery mit Paramter flexibilisieren

TIMS_Ralf

Erfahrenes Mitglied
Hallo Forum,
habe mal angefangen, mich in jQuery reinzufuchsen... schon geil.... Mal am Beispiel eines Akkordeons: Möchte den jQuery-Code so flexibliliseren, dass die CSS-Klassen ( ähnlich einer JS-function ) als Paramter übergeben werden können. Möchte folg. jQ-Code - für ein "allgemein gültiges Akkordeon" - so flexibilisieren, dass z.B. ".DvAkkDt" ( DIV mit AKKordeonDaTen ), auf für andere Klassen verwendet weerden kann:

Code:
$(document).ready(function()
{
	$('.AkkHdCl').not('.AkkHdOp').next('.DvAkkDt').hide();
	$('.AkkHdCl').click( function()
 {
		var AniObj = $(this);
		if ( AniObj.hasClass('AkkHdOp') )
  {
			AniObj.next('.DvAkkDt').slideToggle('slow');
			AniObj.removeClass('AkkHdOp');
		}
  else
  {
			$('.AkkHdOp').next('.DvAkkDt').slideToggle('slow');
			$('.AkkHdOp').removeClass('AkkHdOp');
			AniObj.next('.DvAkkDt').slideToggle('fast');
			AniObj.addClass('AkkHdOp');
		};
		return false;
	});
	
 // Alle Akkordeons öffnen / schließen 
 $("#clAll").click(function()
 {
  $('.DvAkkDt').hide()
 });
 
 $('#opAll').click(function()
 {
  $('.DvAkkDt').show()
 });
});

Die Strings im Code ( z.B '.DvAkkDt' ) könnten ja durch nen Paramter ersetzt werden. Aber wie erfolgt dann der Aufruf? Dann spingt jQuery ja nicht mehr an? Schätze, ich begreif da was nicht nicht ganz...

Danke erstmal!
Gruß Ralf
 
Hi,

ich weiss nicht genau, ob ich dich richtig verstanden habe ... aber wenn du Strings zusammensetzen möchtest, erfolgt das mit Hilfe des +-Zeichens.
Code:
var strClassName = "DvAkkDt";
$('.' + strClassName);
Ciao
Quaese
 
Hi Quaese,
vielen Dank zunächst! Ja, Richtung stimmt schon :-) Zusammensetzen der Strings ist schon klar, aber auch dann muß ich die Variable ja vorher fest definieren.

Mein Ziel ist, dass ich den jQuery-Code (Akkordeon....) mit einer Funktion aufrufe, der ich z.B die Variable "strClassName" als Paramter übergebe, etwa so:

Code:
// HTML: onclick: akkordeon('AkkHdOp', 'AkkHdCl', 'DvAkkDt')

function akkordeon( cssHeadOpen, cssHeadClose, cssData)
{
 $(document).ready(function()
 {
   $('.' + cssHeadClose).not('.' + cssHeadOpen).next('.' + cssData).hide();
   $('.' + cssHeadClose).click( function()
  {
 	var AniObj = $(this);
 	if( AniObj.hasClass(cssHeadOpen) )
   {
 	AniObj.next('.' + cssData).slideToggle(1000);
 	AniObj.removeClass(cssHeadOpen).addClass(cssHeadClose);
   }
   else
   {
 	$('.' + cssHeadOpen).next('.' + cssData).slideToggle(2000);
 	$('.' + cssHeadOpen).removeClass(cssHeadOpen);
 	AniObj.next('.' + cssData).slideToggle(2000);
 	AniObj.addClass(cssHeadOpen);
   };
   return false;
   });
 });
}

Der ONCLCIK-Aufruf im HTML funktioniert aber nicht - verstehe nicht wieso? Habe den Eindruck (?), dass ich den Automatismus von jQuery damit ausheble?

Danke Dir!
Gruß Ralf
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück