Brauche mal Hilfe bei Javascript/jQuery

Ich verwende das [B]“jCarouselLite[/B]” jQuery-Plugin funktioniert auch alles wunderbar…

Das Plugin wird wie folgt initialisiert:

$(document).ready(function(){
    $(".carousel").jCarouselLite({
        auto: 0,
        visible: 2,
        pause: true,
        btnNext: ".carousel_next",
        btnPrev: ".carousel_prev",
        start: 1,
        speed: 0,
        scroll: 1,
        speed: 2000
    });
}); 

Ich muss aber jetzt von Javascript aus die Eigenschaft “[B]auto[/B]” modifizieren.

Mit welcher Javascript-Syntax erreiche ich die Eigenschaft “[B]auto[/B]”, ich bin da bisher gescheitert…

Das [B]“jCarouselLite[/B]” jQuery-Plugin selbst ist wie folgt definiert:

(function($) {                                          // Compliant with jquery.noConflict()
$.fn.jCarouselLite = function(o) {
    o = $.extend({
        btnPrev: null,
        btnNext: null,
        btnGo: null,
        mouseWheel: false,
        auto: null,

        speed: 200,
        easing: null,
                
                autoScroll: null,
                
        vertical: false,
        circular: true,
        visible: 3,
        start: 0,
        scroll: 1,

        beforeStart: null,
        afterEnd: null
    }, o || {});
.......

ah du kämpfst grad mit gültigkeitsbereichen in javascript. :slight_smile:

Ich pfriemel den code mal auseinander:

$(document).ready(function() { });

bewirkt das eine anonyme funktion aufgerufen wird, sobald die dokumentstruktur bereit ist (also geladen). In dieser anonymen funktion wird das plugin aufgerufen:

    $(".carousel").jCarouselLite({
        auto: 0,
        visible: 2,
        pause: true,
        btnNext: ".carousel_next",
        btnPrev: ".carousel_prev",
        start: 1,
        speed: 0,
        scroll: 1,
        speed: 2000
    });

da werden die werte als Javascript Objekt übergeben.

Hier behilft man sich nun mit einem kleinen “trick”:



var carouselData = {
        auto: 0,
        visible: 2,
        pause: true,
        btnNext: ".carousel_next",
        btnPrev: ".carousel_prev",
        start: 1,
        speed: 0,
        scroll: 1,
        speed: 2000
    };

// du kannst jetzt auto bearbeiten, entweder direkt im objekt oben oder so:

carouselData.auto = 1;

// nun ans event übergeben:

$(document).ready(function() { 

    $(".carousel").jCarouselLite(carouselData);

});


Da carouselData vor der eigentlichen funktion defininiert wurde, ist sie im kontext der anonymen funktion beim event verfügbar.

Ich hoff das hilft, und schöne ostern :slight_smile:

[QUOTE=csimon;28691]ah du kämpfst grad mit gültigkeitsbereichen in javascript. :)[/QUOTE]
Ja, in der Tat…

[QUOTE=csimon;28691]Ich hoff das hilft, und schöne ostern :)[/QUOTE]
Ja, hat geholfen, vielen Dank.

Wenn man erst mal weiß, wie’s geht, ist das ja immer einfach.

Auch frohe Ostern…

…und dicke Eier…