2011-05-21 43 views
15

Tôi muốn tạo biểu ngữ bằng cách sử dụng jQuery. Khi tập lệnh được tải trang sẽ hiển thị một nhóm ảnh từng người một. Ví dụ, bộ điều khiển gửi 10 hình ảnh và mỗi bức ảnh sẽ được hiển thị trong 30 giây sau 10 phút kịch bản yêu cầu một bức ảnh khác từ bộ điều khiển.Chạy một hàm trong khoảng thời gian trong jQuery

Câu hỏi đặt ra là: Làm thế nào tôi có thể thực hiện một chức năng chạy trong 30 giây. Tôi cần phải chạy một chức năng trong một khoảng thời gian mà không cần bất kỳ nút bấm hoặc bất cứ điều gì khác.

+0

https://developer.mozilla.org/en/DOM/window.setTimeout và https://developer.mozilla.org/en/DOM/window.setInterval –

Trả lời

42

Phương pháp chính là:

setInterval(function() { 
     console.log('it works' + new Date()); 
    },30000); 

Nếu bạn cần để xóa khoảng thời gian trong tương lai:

var myInterval = setInterval(function() { 
      console.log('it works' + new Date()); 
     },30000); 

trong tương lai:

clearInterval(myInterval); 
+0

Tôi nhận được 'ReferenceError: myInterval không được xác định' –

+0

@FranciscoCorralesMorales: Tôi gặp lỗi tương tự. Do nhầm lẫn, tôi đã cố gắng gọi hàm myInterval với dấu ngoặc đơn. –

-2

Bạn nên sử dụng setInterval như

này
setInterval("alert('Hello')", 5000); 
+1

Bạn nên sử dụng hàm hoặc đóng như đối số đầu tiên, không phải là một chuỗi. – vog

3

Hãy thử một cái gì đó như thế này:

HTML:

<ul id="ticker"> 
    <li>Image 1</li> 
    <li>Image 2</li> 
    <li>Image 3</li> 
    <li>Image 4</li> 
    <li>Image 5</li> 
</ul>​ 

CSS:

ul{height:20px; overflow:auto}​ 

JS:

var $ticker = $('ul#ticker'); 
var speed = 300; 
var pause = 3000; 

var tick = function() { 
    var first = $ticker.find('li').first().animate({ 
     height: 0 
    }, speed).hide('normal', function() { 
     $(this).remove(); 
     $ticker.append('<li>' + first + '</li>'); 
    }).html(); 
}; 

$('ul#ticker').click(tick); 
setInterval(tick, pause); 

Ở đây, một đơn giản Demo.

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