2012-06-16 58 views
5

Có, tôi biết câu hỏi này đã được hỏi trước đây, nhưng tôi không thể tìm thấy câu trả lời phù hợp. Đây là một câu trả lời chấp nhận từ một trong những câu hỏi khác:Thực hiện chức năng sau khi người dùng di chuột qua liên kết trong 2 giây

$('#element').hover(function() 
{ 
    $(this).data('timeout', window.setTimeout(function() 
    { 
     alert('hovered for 2 seconds'); 
    }, 2000)); 
}, 
function() 
{ 
    clearTimeout($(this).data('timeout')); 
    alert('mouse left'); 
}); 

http://jsfiddle.net/nCcxt/

Như bạn thấy nó không làm những gì nó phải đến.

Điều tôi cần đơn giản về lý thuyết nhưng tôi không thể làm cho nó hoạt động - khi người dùng di chuột qua liên kết trong 2 giây, một hàm được gọi. Nếu người dùng di chuyển chuột đi trước 2 giây trôi qua, không có gì xảy ra.

Trả lời

14

works perfectly fine. Nó chỉ bị gián đoạn do các cuộc gọi alert() gây ra sự kiện mouseout được kích hoạt.

Chúng ta học được gì từ nó? Không sử dụng alert() kết hợp với các sự kiện liên quan đến tập trung/di chuột/di chuột.

Bằng cách này, đã có jQuery plugin có sẵn cho những gì bạn muốn làm: http://cherne.net/brian/resources/jquery.hoverIntent.html

+0

Vâng. Bạn sẽ nhìn vào đó. Không bao giờ vượt qua tâm trí của tôi. Cảm ơn. – jovan

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