2013-02-14 43 views
9

Vì vậy, tôi đã có một vấn đề nhỏ (tương tự như tôi đã đăng vào ngày hôm trước: http://bit.ly/11JpbdY) bằng cách sử dụng SlabText trên một đoạn nội dung bị ẩn khi tải . Lần này, tôi đang cố gắng để có được slabText để cập nhật hiển thị một số nội dung trong một thanh trượt (sử dụng plugin Carousel của Twitter Bootstrap).Sử dụng sự kiện Bootstrap Carousel "trượt" và lớp .next

Làm theo tài liệu của Twitter (http://twitter.github.com/bootstrap/javascript.html#carousel) cho plugin Carousel của Bootstrap, tôi đang cố gắng sử dụng sự kiện slide để tôi gọi lại SlabText để hiển thị chính xác.

Sử dụng công cụ nhà phát triển Tôi có thể thấy Carousel thêm lớp .next khi nó xử lý trang trình bày của một phần tử .item sang phần tiếp theo. Điều này sau đó được gỡ bỏ trước khi lớp .active được chuyển.

Tôi có thể truy cập sự kiện "trang trình bày" mà không gặp bất kỳ sự cố nào, nhưng cố gắng giữ phần tử .next đang chứng minh sự phiền hà. Đây là mã JSFiddle của tôi, cho đến thời điểm này: http://jsfiddle.net/peHDQ/

Để đặt câu hỏi của tôi một cách đơn giản; làm thế nào tôi nên sử dụng một cách chính xác sự kiện slide để kích hoạt một chức năng?

Vui lòng cho tôi biết nếu có bất kỳ thông tin bổ sung nào hữu ích.


ghi chú thêm:

Như tôi đã không thể có được giữ của lớp .next, tôi đang cố gắng để làm điều này với một số jQuery. Đây là mã của tôi vậy, đến nay:

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

Từ những gì tôi hiểu được điều này nên được lấy mỗi phần tử .slab và kích hoạt các plugin SlabText .... than ôi tôi nhận được một lỗi:

"của router Lỗi Loại: Object [đối tượng] không có phương pháp 'slabtext' "

Có ai có thể tư vấn cho những gì tôi đang làm sai ở đây không ...? Tôi đã sử dụng quy trình tương tự chính xác để thêm một lớp và nó hoạt động tốt (theo JSFiddle này: http://jsfiddle.net/peHDQ/2/)

Trả lời

14

Tôi đã xác định được sự cố. Vấn đề là sự kiện 'slide' được gọi trước khi trang chiếu tiếp theo được hiển thị. Tôi thêm một chút chậm trễ, và nó hoạt động tốt ngay bây giờ. Hãy thử điều này:

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

Xin lỗi, đây chỉ là loại o trong bài đăng này. Tôi đã thử rằng (http://jsfiddle.net/peHDQ/2/) và than ôi vẫn không có niềm vui! – Sheixt

+0

Tôi đã cập nhật câu trả lời của mình. Điều này sẽ hoạt động ngay bây giờ. –

+0

Cảm ơn! Điều này hoạt động, tốt, đến một điểm. Vì vậy, tôi đoán vấn đề là nó cần phải trì hoãn trước khi xử lý các chức năng. Vấn đề duy nhất với việc thiết lập thời gian là 50 mili giây là nếu người dùng kết nối chậm thì vấn đề vẫn xảy ra. Nếu bạn đặt nó lâu hơn nữa, những kết nối nhanh sẽ thấy sự lộn xộn. Bất kỳ đề xuất về điều này? – Sheixt

Các vấn đề liên quan