• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Variable/Wert aus andere Funktion ändern

burn4ever

Mitglied
Hallo,
ich habe in meiner index.html eine Funktion für einen Slider:

HTML:
<script type="text/javascript" charset="utf-8">jQuery(window).load(function() {

    jQuery('.slider').myslider( {        animation: "slide",        slideshow: true,        itemWidth: 185,        itemMargin: 20,        maxItems: 5,        selector: ".slides > li",        move: 1,        controlNav: true,        directionNav: true,        touch: true   });});</script>
#

und möchte gerne aus einer externen JavaScript Datei (Wird auch in diese index.html eingebunden),
aus einer anderen Funktion den Parameter "maxItems" (siehe oben) von 5 auf 2 ändern.

Wie kann ich aus einer andern Funktion auf die variable zugreifen und diese verändern?
 
Wie ist die Funktion denn aufgebaut? Ich denke mal, es handelt sich um ein Objekt? Quelltext bitte ^^
 
HTML:
jQuery(function() {    mobile_go = function(self) {
       if (self.innerWidth <= 740 && window.desktop === false) {
            //Grauer Hintergrund wird an Höhe angepasst            jQuery('#container1').css('padding-bottom', sliderNav + 'px');
            //Variable von Slider setzten
            if (self.innerWidth <= 350 && window.desktop === false) {            maxItemsVar: 1;
            }            else if (self.innerWidth <= 540 && window.desktop === false) {            maxItemsVar: 2;
            }      } };

Die Variable maxItemsVar habe ich in der index.html global definiert, sprich:
HTML:
var maxItemsVar = 5;

Ich glaube nur das ich ein ganz anderes Problem habe. Die Variable gehört zu einem Slider:
http://www.woothemes.com/flexslider/

Ich bin mir nicht ganz sicher aber ich glaube ich müsste nach gesetzter Variable den Slider neu initialisieren damit er auch mit dem neuen Parameter arbeitet.
Auf der Seite des Sliders finde ich in der Dokumentation allerdings keine Funktion welche das initialisieren auslöst.
 
Wie wäre es, wenn obige Funktion maxItemVar returned und mobile_go dem Slider als Value für maxItems übergeben wird?
 
Im Prinzip gebe ich Dir da recht aber das ganze funktioniert nur beim ersten laden der Seite. Wenn ich aber zum Beispiel den Browser in seiner Größe verändere und einen neuen breakpoint erreiche müsste ich den Slider ja neu initalisieren um die neue Variable (maxItemsVar) zu übergeben.
Der Slider an sich biette mir aber keine "destroy" o.Ä. callback Funktion um den neuen Parameter bei bereits geladener Seite zu übernehmen :-(
 
Im Prinzip gebe ich Dir da recht aber das ganze funktioniert nur beim ersten laden der Seite. Wenn ich aber zum Beispiel den Browser in seiner Größe verändere und einen neuen breakpoint erreiche müsste ich den Slider ja neu initalisieren um die neue Variable (maxItemsVar) zu übergeben.
Der Slider an sich biette mir aber keine "destroy" o.Ä. callback Funktion um den neuen Parameter bei bereits geladener Seite zu übernehmen :-(

Ah, jetzt weiß ich, worauf du hinauswillst, ich stand vor einiger Zeit vor einem ähnlichen Problem. Ein einfacher, aber responsiver Slider, der mehrere Bilder gleichzeitig anzeigen kann und wo die Anzahl der geladenen Bilder sich nach der Breite des Eltern-Divs richtet. Da ich kein passendes Plugin finden konnte, habe ich mir selber eins geschrieben. Kannst es dir ja mal anschauen und bei Interesse erweitern. Animationen hatte ich hier nicht eingebaut, weil das für meine Zwecke nicht notwendig war.

Slider

Sowohl beim Laden der Seite als auch Skalieren des Viewports wird ein Ajax-Request an eine externe Datei (param.php) gesandt, der den Inhalt des Arrays products[] mitliefert. Aus den Array-Elementen werden anschließend die Bilder erstellt. Die Funktion getElements() lädt den Slider, moveElemens() ist für vor / zurück zuständig und sortElements() sortiert das Array beim Klick auf die Pfeile um.

Die per Ajax angesprochene Datei sieht so aus:
PHP:
<?php
    $imgCount = intval($_GET['sliderWidth'] / $_GET['linkWidth']);
    $products = $_GET['elements'] ? $_GET['elements'] : array();
?>




<div class="product-images column12">
    <?php for ($i = 0; $i < $imgCount; $i++) : ?>
        <p class="img-container">
            <a href="#"><img src="img/<?php echo $products[$i]; ?>.jpg" alt="<?php echo $products[$i]; ?>" /></a><br />
            <span><?php echo ucfirst($products[$i]); ?></span>
        </p>
    <?php endfor; ?>
</div>
 
Zurück
Oben