2010-11-28 116 views
4

我正在使用jCarousel在我的頁面中顯示圖像輪播。它工作得很好,沒有任何抱怨,但我使用頁面上的Tab鍵,當我轉到另一個Tab時,它會得到一個醜陋的jCarousel錯誤。基本上我想要做的是從我的元素中刪除jCarousel時,我得到一個新的標籤,但我的生活無法弄清楚它jCarousel卸載/禁用/刪除

要添加旋轉木馬我使用這樣的代碼$(「# myelement「)。jCarousel({/ * config params * /});

但我不確定如何從$(「#myelement」)中刪除.jCarousel任何想法?

回答

0

我假設你在談論這個插件:http://sorgalla.com/jcarousel/

你得到什麼類型的錯誤?我猜它試圖找到不可見和失敗的元素。看起來好像你可以將一個函數綁定到標籤切換來隱藏輪播或者調用它的reset()方法。

+0

是多數民衆贊成在jQuery的插件我我的意思。 錯誤是: jCarousel:沒有爲項目設置寬度/高度。這將導致無限循環。正在中止...... 我知道錯誤即將到來的原因,但我必須刪除元素以及插件與元素的綁定。 類似$(「myelement」)。remove(jCarousel)?! – PaDalton 2010-11-29 21:23:16

2

這裏是我的方式來刪除的元素,並沒有得到一個錯誤:

function mycarousel_initCallback(carousel){ 

$("#main_holder").mouseenter(function(){ 
    if(document.getElementById("event_scroller")){ 
     carousel.startAuto(2); 
    } 
}).mouseleave(function(){ 
    carousel.stopAuto(); 
}); 

$("#main_holder a").click(function(){ 
    carousel.stopAuto(); 
    carousel.remove(); 
});}; 

$(document).ready(function(){ 
$("#event_scroller").jcarousel({ 
    scroll: 1, 
    wrap: 'circular', 
    vertical: true, 
    animation: 700, 
    initCallback: mycarousel_initCallback 
}); 
}); 

當我們單擊MAINAREA一個鏈接, 我的jCarousel元素會從另一個腳本,以便 我們有一個刪除這個女巫的處理程序正在停止旋轉木馬,而不是去除。

我試圖在回調之外做這件事,但它接縫jCarousel 只能從回調中控制。

1

這是我爲這個醜陋的js錯誤「Jcarousel:沒有寬度/高度設置項目...」的解決方案。儘量避免jCarousel的雙重初始化。

var carousel_initialized = false; 

if(!carousel_initialized) { 
jQuery('#mycarousel').jcarousel({ 
    ... // all your parameters 
    initCallback: function() { 
     carousel_initialized = true; 
    } 
}); 

或者試試如果你通過AJAX更換的jCarousel容器獲得的jCarousel的實例像

carousel_initialized = $("#mycarousel").data('jcarousel'); 
if(!carousel_initialized) { 
    jQuery('#mycarousel').jcarousel({ 
     ... // all your parameters 
    }); 
} 

你應該做這樣的事情:

if(myCarousel = $("#mycarousel").data('jcarousel')) { 
    myCarousel.stopAuto() 
    myCarousel.reset(); 
} 

我希望這可以幫助別人...

schulle7

3

除了PaDalton的回答,我還從窗口中分離出了resize事件,因爲我的傳送帶位於(colorbox)彈出框內。

$(window).unbind('resize.jcarousel'); 

當事件觸發得到的$(this).dimensions(e)線發送警報消息作爲李節點沒有一個尺寸,它認爲的目的是要顯示的,但沒有一個尺寸,將無法正確計算轉盤尺寸。

錯誤消息是Infinite Loop - no width or height set

+1

令人驚歎!謝謝! – Trolleymusic 2012-10-12 14:27:31