Jquery jCarousel卸载/禁用/删除

Jquery jCarousel卸载/禁用/删除,jquery,jcarousel,Jquery,Jcarousel,我正在使用jCarousel在我的页面中旋转图像。它工作得很好,没有任何抱怨,但我正在使用页面上的选项卡,当我转到另一个选项卡时,它会出现一个丑陋的jCarousel错误。基本上,我想做的是当我转到一个新选项卡时,从元素中删除jCarousel,但我一生都无法理解它 要添加旋转木马,我使用的代码如下$(“#myelement”).jCarousel({/*config-params*/}) 但是我不确定如何从$(“#myelement”)中删除.jCarousel。有什么想法吗?我假设您正在谈论

我正在使用jCarousel在我的页面中旋转图像。它工作得很好,没有任何抱怨,但我正在使用页面上的选项卡,当我转到另一个选项卡时,它会出现一个丑陋的jCarousel错误。基本上,我想做的是当我转到一个新选项卡时,从元素中删除jCarousel,但我一生都无法理解它

要添加旋转木马,我使用的代码如下$(“#myelement”).jCarousel({/*config-params*/})


但是我不确定如何从$(“#myelement”)中删除.jCarousel。有什么想法吗?

我假设您正在谈论这个插件:


您会遇到什么类型的错误?我猜它是在试图找到不可见的元素,并且失败了。您似乎可以将一个函数绑定到选项卡切换,以隐藏旋转木马或调用其reset()方法。

以下是我删除元素而不出错的方法:

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
只能从回调内部进行控制。

以下是我针对这个丑陋的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

除了PaDalton的回答,我还从窗口中分离了resize事件,因为我的旋转木马位于()弹出框中

$(window).unbind('resize.jcarousel');
触发事件时,
$(this).dimensions(e)
行发送警报消息,因为li节点没有大小,它认为要显示对象,但如果没有大小,它将无法正确计算旋转木马尺寸


错误消息是
无限循环-没有设置宽度或高度

是的,这就是我所说的JQuery插件。错误是:jCarousel:没有为项目设置宽度/高度。这将导致无限循环。流产。。。我知道错误出现的原因,但我必须删除元素以及插件与元素的绑定。类似于$(“myelement”).remove(jCarousel)?!