【问题标题】:Utilise the Bootstrap Carousel "slide" event and the .next class利用引导轮播“幻灯片”事件和 .next 类
【发布时间】: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/

【问题讨论】:

    标签: javascript jquery html twitter-bootstrap carousel


    【解决方案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 毫秒,此函数也将始终在主线程使项目可见后执行。
    • 您有机会在任何较慢的浏览器上检查它吗?正如我告诉你的,这肯定适用于所有浏览器。但是,您需要设置一个标志,以便不会在每个元素上多次调用该函数。
    猜你喜欢
    • 1970-01-01
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    • 2016-10-27
    • 2016-04-14
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多