jCarousel卸载/禁用/删除

时间:2010-11-28 23:06:31

标签: jquery jcarousel

我正在使用jCarousel在我的页面中有一个图像旋转木马。它工作得很好,没有任何抱怨,但我在页面上使用tabbing,当我转到另一个选项卡时,它得到一个丑陋的jCarousel错误。基本上我想要做的是当我转到一个新标签时从我的元素中删除jCarousel但是因为我的生活无法弄明白

要添加轮播我使用的代码如$(“#myelement”)。jCarousel({/ * config params * /});

但我不确定如何从$(“#myelement”)中删除任何想法的.jCarousel?

4 个答案:

答案 0 :(得分:3)

除了PaDalton的答案之外,我还从窗口中分离了resize事件,因为我的轮播在(colorbox)弹出框内。

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

当事件被触发时,$(this).dimensions(e)行发送警报消息,因为li节点没有大小,它认为对象是要显示但没有大小它将无法正确计算轮播尺寸。

错误讯息为Infinite Loop - no width or height set

答案 1 :(得分: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元素将从另一个脚本中删除 我们有一个处理器,这个女巫正在停止旋转木马,而不是.remove。

我试图在回调之外做这个,但它接缝jCarousel 只能从回调内部控制。

答案 2 :(得分:1)

这是我对这个丑陋的js错误的解决方案“Jcarousel:没有设置物品的宽度/高度......”。尽量避免jCarousel的双重初始化。

var carousel_initialized = false;

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

或尝试获取jCarousel的实例,如

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

如果你通过AJAX替换jCarousel容器,你应该这样做:

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

我希望这有助于某人...

schulle7

答案 3 :(得分:0)

我假设你在谈论这个插件:http://sorgalla.com/jcarousel/

你得到什么类型的错误?我猜它正试图找到不可见和失败的元素。看起来你可以将一个函数绑定到选项卡切换到隐藏轮播或调用其reset()方法。