jCarousel卸载/禁用/移除

4
我正在使用jCarousel在我的页面上制作图片轮播。它工作得很好,没有任何抱怨,但我正在使用页面上的选项卡,当我转到另一个选项卡时,它会出现一个难看的jCarousel错误。基本上我想做的是,当我转到新选项卡时,从我的元素中删除jCarousel,但是我无论如何都想不出解决方法。
要添加轮播,我使用的代码类似于$("#myelement").jCarousel({ /* config params */}); 但我不确定如何从$("#myelement")中删除.jCarousel,有什么想法吗?
4个回答

3
除了PaDalton的答案之外,我还将缩放事件从窗口中分离出来,因为我的旋转木马位于(colorbox)弹出框内部。
$(window).unbind('resize.jcarousel');

当事件被触发时,$(this).dimensions(e)这一行代码发送了警告信息,因为li节点没有尺寸,它认为对象将被显示但是没有尺寸,它将无法正确计算旋转木马的尺寸。
错误信息为Infinite Loop - no width or height set

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
});
});

当我们在主区域点击链接时,我的jCarousel元素将从另一个脚本中删除,因此我们有一个处理程序来停止轮播,然后删除。
我已经尝试在回调之外完成此操作,但似乎只能从回调内部控制jCarousel。

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


0

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

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


是的,我指的就是JQuery插件。 错误信息如下: jCarousel:未为项目设置宽度/高度。这将导致无限循环。中止... 我知道错误出现的原因,但我必须删除元素并解除插件对该元素的绑定。 类似于$("myelement").remove(jCarousel) ?! - PaDalton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接