2013-03-07 27 views
9

Tôi có tập lệnh này để tạo màu nền trên một đoạn khi di chuột qua liên kết trong đoạn văn. Những gì tôi không biết làm thế nào để làm là làm cho nó trở về màu nền ban đầu một khi tôi "un-hover".jquery un-hover

$(function(){ 
    $(".box a").hover(function(){ 
    $(this).parent().css('background-color', '#fff200'); 
    }); 
}); 

Cảm ơn!

+3

Bạn có thể xem xét sử dụng bộ chọn giả ': hover' và thực hiện việc này trong CSS mà không cần bất kỳ JavaScript nào. Xem http://quirksmode.org/css/selectors/hover.html – Brandon

+0

Tôi không nghĩ mình có thể chỉ sử dụng CSS vì tôi đang thay đổi màu của một mục cha. Tôi không nghĩ rằng bạn có thể chọn một bộ chọn chính trong CSS một mình. – user1754427

Trả lời

28

Hàm dưới đây hoạt động như onmouseover và onmouseout

$(function(){ 
    $(".box a").hover(function(){ 
    $(this).parent().css('background-color', '#fff200'); 
    }, function(){ 
     // change to any color that was previously used. 
     $(this).parent().css('background-color', '#fff200'); 
    }); 
}); 
+0

Công trình này hoàn hảo (trừ màu nền thứ hai phải là màu gốc - #fff trong trường hợp của tôi - không phải là màu di chuột). – user1754427

+0

Tôi biết đó là lý do tại sao tôi đặt nhận xét ở đó để thay đổi thành màu trước :) vui vì tôi có thể trợ giúp, đừng quên chấp nhận câu trả lời –

1

Có trình xử lý di chuột ra ngoài trong jQuery documentation. Đó là nơi bạn muốn trả lại màu cho bản gốc. Nếu tất cả các bạn đang làm là thay đổi màu sắc, tại sao không sử dụng CSS?

$(function(){ 
    $(".box a").hover(function(){ 
     $(this).parent().css('background-color', '#fff200'); 
    },function(){ 
     $(this).parent().css('background-color', '#originalhexcolor'); 
    }); 
}); 
+0

Tôi không nghĩ mình có thể chỉ sử dụng CSS vì tôi đang thay đổi màu của một mục cha. Tôi không nghĩ rằng bạn có thể chọn một bộ chọn chính trong CSS một mình. – user1754427

+0

Tôi hiểu .. sau đó tôi đoán jQuery là cách tốt nhất để chuyển tiếp. –

2

JQuery

$(".box a").hover(function(){ 
    $(this).parent().css('background-color', '#fff200'); 
}, function() { 
    $(this).parent().css('background-color', '#ffffff'); 
}); 

Xem fiddle.

1

Nếu bạn phải sử dụng jQuery cho điều này, sử dụng addClass() hơn css():

$('.box a').hover(function(){ 
    $(this).closest('.box').addClass('hoveredOver'); 
}, function(){ 
    $(this).closest('.box').removeClass('hoveredOver'); 
}); 

Với CSS:

.hoveredOver { 
    background-color: #fff; 
} 

JS Fiddle demo.

Tài liệu tham khảo: