利用引导轮播“幻灯片”事件和 .next 类

Posted

技术标签:

【中文标题】利用引导轮播“幻灯片”事件和 .next 类【英文标题】:Utilise the Bootstrap Carousel "slide" event and the .next class 【发布时间】:2013-01-30 22:16:36 【问题描述】:

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

根据 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 插件....唉,我得到一个错误:

"Uncaught TypeError: Object [object Object] has no method 'slabtext'"

谁能告诉我在这里做错了什么...?我使用完全相同的过程来添加一个类并且它工作正常(根据这个 JSFiddle:http://jsfiddle.net/peHDQ/2/)

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

抱歉,这只是这篇文章中的一种类型。我已经试过了(jsfiddle.net/peHDQ/2),唉,还是不高兴! 谢谢!这在一定程度上有效。所以我认为问题是在处理函数之前需要延迟。将时间设置为 50 毫秒的唯一问题是,如果用户连接速度较慢,问题仍然存在。如果您将其设置得更长,那些连接快速的人会看到口吃。对此有何建议? 较慢的互联网连接根本不重要,因为此 javascript 仅在整个页面加载后执行。您可能担心的是计算机速度较慢的人。但话又说回来,我认为这也不是问题,因为这个数字(50 毫秒)只是对浏览器的提示。这就是 JavaScript 的工作方式,它是一个单线程。因此,当您说在 50 毫秒后调用此函数时,它将切换到主线程,从而使项目可见。主线程结束后,会回到这个函数,执行slabText函数。 所以是的,即使您将提示设为 0 毫秒,此函数也将始终在主线程使项目可见后执行。 您有机会在任何较慢的浏览器上检查它吗?正如我告诉你的,这肯定适用于所有浏览器。但是,您需要设置一个标志,以便不会在每个元素上多次调用该函数。

以上是关于利用引导轮播“幻灯片”事件和 .next 类的主要内容,如果未能解决你的问题,请参考以下文章

引导轮播更多幻灯片链接到一个指标

在引导轮播中使用图像而不是幻灯片背景

修改引导轮播以同时显示多张幻灯片

引导轮播 - 滑动时暂停 html 视频

在活动引导轮播幻灯片中定位 iframe 元素并向 SRC 属性添加哈希?

如何在引导轮播中使用 for 循环