2010-03-30 35 views
11

tôi có chức năng jquery cơ bản nhất của tất cả, nhưng tôi không thể tìm thấy một cách trong tài liệu để kích hoạt các nội dung của chức năng nhấp chuột này sau khi nói 1500 mili giây:chậm trễ cơ bản về chức năng jquery .click

$('.masonryRecall').click(function(){ 
    $('#mainContent').masonry(); 
}); 

PS chỉ cần chú ý đến hàm .delay jquery 1.4, mặc dù, tôi đang sử dụng phiên bản 1.3. Tôi không biết liệu việc cập nhật điều này có ảnh hưởng đến bất kỳ javascript nào khác mà tôi hiện có hay không.

Trả lời

17

Bạn có thể làm điều đó bằng javascript thông thường bằng cách sử dụng setTimeout().

$('.masonryRecall').click(function(){ 
     setTimeout("$('#mainContent').masonry()", 1500); 
    }); 
+0

@Bryon Whitlock Cảm ơn vì điều đó. Chỉ cần thêm .masonry của nó(). Nhưng thời gian chờ dường như không hoạt động. nó vẫn cháy ngay lập tức ??? – kalpaitch

+0

Một lần nữa, cảm ơn sự chỉ đạo. chỉ là một thay đổi nhỏ và nó hoạt động hoàn hảo: setTimeout ("$ ('# mainContent'). masonry()", 1500); – kalpaitch

+0

Rất thú vị. Tôi đã cập nhật câu trả lời. –

16

Bạn thường nên tránh xa các chuỗi ký tự trong setTimeout/setInterval. Thay vì sử dụng một đóng cửa:

setTimeout(function(){ $('#mainContent').masonry(); }, 1500);` 

và thậm chí tốt hơn sử dụng nó như thế này (lưu ý: việc đóng cửa bên ngoài là không thực sự cần thiết):

(function($){ 
    var timeout=null; 
    $('.masonryRecall').click(function(){ 
     clearTimeout(timeout); 
     timeout=setTimeout(function(){$('#mainContent').masonry();}, 1500); 
    }); 
}(jQuery)); 
Các vấn đề liên quan