我正在使用jCarousel在我的页面中有一个图像旋转木马。它工作得很好,没有任何抱怨,但我在页面上使用tabbing,当我转到另一个选项卡时,它得到一个丑陋的jCarousel错误。基本上我想要做的是当我转到一个新标签时从我的元素中删除jCarousel但是因为我的生活无法弄明白
要添加轮播我使用的代码如$(“#myelement”)。jCarousel({/ * config params * /});
但我不确定如何从$(“#myelement”)中删除任何想法的.jCarousel?
答案 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()方法。