I had similar problems with the slider not initializing properly in Chrome. Sometimes the zipper object would become available, but it never called init. I never figured out the root cause, but I successfully treated the symptoms using this ugly, ugly paraphrased code here.
$(".zipper-items").jcarousel({
initCallback: zipperInitCallback,
itemLoadCallback: zipperItemLoadCallback
});
window.setTimeout(loadZipperItemsBackup, 100);
function zipperInitCallback(carousel) {
zipperCarousel = carousel;
}
function zipperItemLoadCallback(carousel, state) {
if ('init' == state) {
initiallyLoaded = true;
}
}
var initiallyLoaded = false;
function loadZipperItemsBackup() {
/* Go to page 2 of the zipper, reload the page. Chrome usually doesn't fire
* the init, and even when it does it takes too long to happen. */
if (!initiallyLoaded) {
if (zipperCarousel) {
zipperCarousel.reset();
} else {
window.setTimeout(loadZipperItemsBackup, 100);
}
}
}
Edit
In other words, it's possible that in Chrome the slideshow isn't initializing properly so the "cycle" function isn't available. Can you try $('#slideshow').reset(); and then $('#slideshow').cycle('stop');? If that does the trick then I'm in the right ballpark.