JCarousel带有'循环'换行和live()/ delegate()函数在幻灯片上出价

时间:2012-04-26 11:22:41

标签: jquery jcarousel

我读了很多关于&#39;循环&#39;包装jcarousel中的错误,但没有找到这个特定的。我有jcarousel与&#39;循环&#39;换行并且我想在用户将鼠标悬停在幻灯片上时显示有关当前幻灯片的一些信息,并在鼠标滑出幻灯片时隐藏此信息。为实现这一目标,我将此信息保存在<li>包含的<div class="description">元素下。

$('#carousel').jcarousel(
     auto: 3,
     wrap: 'circular',
     scroll:1,
     initCallback: mycarousel_initCallback,
     size:5
 });

并将事件(我也尝试使用live()的变体)绑定到<li>元素(将在jcarousel工作期间出现的当前和未来&#39;循环&#39;换行):

$('#carousel').delegate(
                        'li',
                        'mouseover',
                        function (){
                            $(this).find('.description').slideDown();
                            return false;
                        }
                    );
                $('#carousel').delegate(
                        'li',
                        'mouseout',
                        function () {
                            $(this).find('.description').slideUp();
                            return false;
                        }
                    );

这样可以正常工作,但在某些时候(对我来说完全不确定,可能是使用的第一秒,甚至是向前/向后硬敲击几分钟)偶尔会出现幻灯片描述停止。我试图调试这个并发现在这个破碎的幻灯片上的事件触发,存在描述的dom元素,但是slideDown()/ slideUp()根本没什么用。这张幻灯片一直打破,直到页面重新加载。

出于某种原因,我无法将换行更改为其他,我无法将jQuery从1.3(或1.4,我实际上不记得)更改为更新版本。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

好吧,长话短说:这个问题与jQuery动画功能和jCarousel之间的交互有关。当幻灯片放映时,它会在某个时刻开始创建和删除代表幻灯片的新节点。并且在动画未完成时删除节点'挂起'jquery的fx队列。为了避免这种麻烦,我必须在删除幻灯片之前清除此队列。看起来像黑客,但在我看来,没有什么比这更好了。

相关问题