2013-02-14 70 views
9

所以我有一个小问题(类似于前一天发布的这个:http://bit.ly/11JpbdY),在负载隐藏的一段内容上使用了SlabText 。这一次,我试图让slabText更新滑块中某些内容的显示(使用Twitter Bootstrap的Carousel插件)。利用Bootstrap Carousel“slide”事件和.next类

对于Bootstrap的Carousel插件的Twitter文档(http://twitter.github.com/bootstrap/javascript.html#carousel),我试图使用slide事件,以便我重新调用SlabText以使其正确显示。

使用开发人员工具,我可以看到Carousel增加了一个.next类,因为它处理一个.item元素的幻灯片到下一个。然后在传输.active类之前将其删除。

我可以在没有任何问题的情况下访问“幻灯片”事件,但试图获得元素.next证明是麻烦的。 这里是我的代码JSFiddle到目前为止:http://jsfiddle.net/peHDQ/

简单地说我的问题;我应该如何正确使用slide事件来触发一个函数?

请让我知道,如果任何额外的信息将是有用的。


其它注意事项:

正如我一直无法得到.next类的保持,我试图用一些jQuery来做到这一点。这里是我的代码至今:

$('.carousel').carousel({ 
    interval: 5000 
}).on('slide', function (e) { 
    $(this).find('.active').next().find('.slab').slabText(); 
}); 

据我所知这应该抓住每一个.slab元素并触发SlabText插件....唉,我得到一个错误:

“遗漏的类型错误:对象[object Object]没有方法'slabtext'“

任何人都可以建议我在做什么错在这里...?我用完全相同的过程来添加一个类,它工作正常(按照此JSFiddle:http://jsfiddle.net/peHDQ/2/

回答

14

我确定了问题。问题是在下一张幻灯片显示之前调用事件“幻灯片”。我加了一点延迟,现在它工作正常。试试这个:

$('.carousel').carousel({ 
     interval: 5000 
    }).on('slide', function (e) { 
     var xx = $(this); 
     setTimeout(function() { 
      xx.find('.active').next().find('.slab').slabText(); 
     } , 0); 
    }); 
+0

对不起,这只是一个类型o在这篇文章中。我已经试过(http://jsfiddle.net/peHDQ/2/),唉,仍然没有快乐! – Sheixt 2013-02-20 23:46:42

+0

我更新了我的答案。这应该现在工作。 – 2013-02-21 11:59:56

+0

谢谢!这适用于某一点。所以我认为这个问题是它在处理函数之前需要延迟。将时间设置为50毫秒的唯一问题是,如果用户连接速度较慢,问题仍然存在。如果设置时间更长,那么快速连接的人会看到口吃。对此有何建议? – Sheixt 2013-02-21 14:29:23