jhartlep
Grünschnabel
Moin,
ich habe ein Problem bei der Anpassung von jCarousel.
Ich möchte "Carousel with autoscrolling" mit "Carousel with dynamic content loading via Ajax" verbinden...
Hier ist mein Versuch dazu:
Das Problem ist jetzt aber, daß ich im Firebug einen JS-Fehler bekomme:
Baue ich in der itemVisibleInCallback eine Schleife ala
ein, so lädt die Seite eine halbe Ewigkeit, bis sich überhaupt etwas tut...
Soweit ich es in der Doku von jcarousel verstanden habe wird initCallback sofort ausgeführt, nachdem jcarousel initialisiert wurde. Scheinbar springt das Skript jedoch direkt zu itemVisibleInCallback weiter, ohne auf das Ergebnis der Post-Abfrage zu warten. Daher ist es klar, warum es zu dem Fehler kommt... Die Variable ist ja schließlich leer... Aber wie kann ich das ganze jetzt so zum Laufen bekommen, wie ich mir das vorstelle?
Bin über jeden Tipp dankbar.
ich habe ein Problem bei der Anpassung von jCarousel.
Ich möchte "Carousel with autoscrolling" mit "Carousel with dynamic content loading via Ajax" verbinden...
Hier ist mein Versuch dazu:
Code:
var slider = new Array();
function start_slider() {
$(function() {
$('#mycarousel').jcarousel({
// Configuration Slider
auto: 2,
scroll: 1,
wrap: 'circular',
initCallback: mycarousel_initCallback,
itemVisibleInCallback: { onBeforeAnimation: mycarousel_itemVisibleInCallback },
});
});
}
function mycarousel_initCallback(carousel, state) {
if(state != "init") {
return;
}
var url = "ajax/ajax_slider.php";
var data = {};
var dataType = "json";
$.post(url, data, function(json) { slider = json.topprodukt; }, dataType);
carousel.buttonNext.bind('click', function() { carousel.startAuto(0); });
carousel.buttonPrev.bind('click', function() { carousel.startAuto(0); });
carousel.clip.hover(function() { carousel.stopAuto(); }, function() { carousel.startAuto(); });
}
function mycarousel_itemVisibleInCallback(carousel, item, i, state, evt) {
var idx = carousel.index(i, slider.length);
carousel.add(i, mycarousel_getItemHTML(slider[idx - 1]));
};
function mycarousel_getItemHTML(item) {
return '<img src="' + item.imgSrc + '" width="75" height="75" alt="' + item.title + '" />';
};
Das Problem ist jetzt aber, daß ich im Firebug einen JS-Fehler bekomme:
Code:
item is undefined (return '<img src="' + item.imgSrc + '" width="75" height="75" alt="' + item.title + '" />';)
Baue ich in der itemVisibleInCallback eine Schleife ala
Code:
while(slider.length==0) {}
Soweit ich es in der Doku von jcarousel verstanden habe wird initCallback sofort ausgeführt, nachdem jcarousel initialisiert wurde. Scheinbar springt das Skript jedoch direkt zu itemVisibleInCallback weiter, ohne auf das Ergebnis der Post-Abfrage zu warten. Daher ist es klar, warum es zu dem Fehler kommt... Die Variable ist ja schließlich leer... Aber wie kann ich das ganze jetzt so zum Laufen bekommen, wie ich mir das vorstelle?
Bin über jeden Tipp dankbar.