jQuery: Art der Animation übergeben

DiDiJo

Erfahrenes Mitglied
Hi Leute,

kann man irgendwie die Animationsart in einer Funktion übergeben?

folgendes hatte ich mal versucht:
Code:
function animateMultipleElements(animation,elem) {
	elem.animation(500, function() { animateMultipleElements($(this).next()); }); 
}
// bzw.
function animateMultipleElements(animation,elem) {
	elem.eval(animation)(500, function() { animateMultipleElements($(this).next()); }); 
}

und so hab ich das ganze aufgerufen
Code:
animateMultipleElements(slideDown,$("#news_block .NewsBlock:first")?);

// bzw

animateMultipleElements('slideDown',$("#news_block .NewsBlock:first")?);

aber ich krieg jedesmal die meldung, dass animation undefiniert ist
 
Moin,

jo, das geht, sogar recht simpel:)

Das Prinzip, um in JS auf Variable Eigenschaften eines Objekts zuzugreifen, sieht so aus:
Code:
obj[eigenschaft]
oder
Code:
obj[methode]()

In deinem Fall also
Code:
elem[animation](500)


Kurzer Test:
Code:
<!DOCTYPE html>
<html>
<head>
  <style>
    #news_block .NewsBlock{display:none;float:left;padding:4px;font-size:28px;}
  </style>
  <script src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
<div id="news_block">
  <div class="NewsBlock">News1</div>
  <div class="NewsBlock">News2</div>
  <div class="NewsBlock">News3</div>
  <div class="NewsBlock">News4</div>
  <div class="NewsBlock">News5</div>
</div>
<script>
function animateMultipleElements(animation,elem) {
	elem[animation](500,function(){animateMultipleElements(animation,$(this).next());}); 
}

$(document)
.ready(function () 
      {
        animateMultipleElements('slideDown',$("#news_block .NewsBlock:first"));
      }
);
</script>
</body>
</html>
 

Neue Beiträge

Zurück