2010-08-17 58 views
5

Tôi đang cố gắng kích hoạt trạng thái di chuột trên liên kết văn bản khi di chuột qua li gốc của nó. Điều này có thể trong CSS và thứ hai, tôi thiếu một cái gì đó với .children có thể giải quyết vấn đề này. Đây là HTML:Cách kích hoạt trạng thái di chuột liên kết khi di chuột qua LI mẹ của nó. jQuery

<li class="video-1">          
    <a href="#"><img src="images/csi-1.gif" alt="csi-1" width="140" height="80" /></a> 
    <h3 class="show-title"><a href="#">Show TItle</a></h3> 
    <h3 class="ep-name"><a href="#">Episode Name</a></h3> 
    <h4 class="season-info">Season 4 | Ep 10<span class="more"><a href="#">See More</a></span></h4> 

</li> 

Và JS:

$(".more").hide(); 

$(".video-1").hover(function() { 
$(".video-1:hover h3.show-title a").css('color', '#006699'),function() { 
    $(this).css("color", "#fff"); 
      }  
    $(".more").toggle(); 

}); 
+0

JS của bạn không phân tích: Điều gì đang xảy ra với các dấu phẩy sau cuộc gọi đến .css()? –

+0

Đừng làm điều đó! Làm cho liên kết lớn hơn. Không làm cho người dùng nghĩ rằng 'li' có thể nhấp được, khi không. –

Trả lời

11

Bạn có thể làm ảnh hưởng di chuột chỉ với CSS như thế này (trong stylesheet của bạn):

.video-1 .more { display: none } 
.video-1:hover h3.show-title a { color: #006699 } 
.video-1:hover .more { display: block } 

Không JS cần thiết ở tất cả trừ khi bạn cần hỗ trợ IE6 mà chỉ chỉ hỗ trợ :hover trên a yếu tố.

UPDATE:

Bạn có thể thêm một cái gì đó như thế này để HTML của bạn nếu bạn cũng cần phải hỗ trợ IE6:

<!--[if lte IE 6]> 
<script type="text/javascript" charset="utf-8"> 
    jQuery(function ($) { 
    $('#video-1').hover(function() { 
     $(this).addClass('hover'); 
    }, function() { 
     $(this).removeClass('hover'); 
    }); 
    }); 
</script> 
<![endif]--> 

Sau đó điều chỉnh CSS như thế này:

#video-1 .more { display: none } 
#video-1:hover h3.show-title a, #video-1.hover h3.show-title a { color: #006699 } 
#video-1:hover .more, #video-1.hover .more { display: block } 

Và cuối cùng, hãy thay đổi HTML ban đầu của bạn từ một số class thành một số id vì IE6 không hỗ trợ chuỗi liên kết ass tên trong CSS:

<li id="video-1"> 
1
.video-1:hover{color:#fff} 
.video-1 .more { display: none } 
.video-1:hover .more { display: block; z-index:10 } 

z-index sẽ đảm bảo nội dung hiển thị trên tất cả các yếu tố trên trang

+0

hey doug, vì vậy chỉ để chắc chắn rằng tôi đã viết điều này đúng, điều này là nghĩa vụ phải: - di chuột li # video-1 (bất kỳ phần nào của toàn bộ khu vực) -add class to h3.show-title a .more chỉ để hiển thị liên kết khi di chuột, phần đó hoạt động, chỉ thay đổi màu trên h3 thì không. cám ơn rất nhiều! –

+0

@ David, đây không phải là câu trả lời của tôi, tôi vừa sửa định dạng. Tôi đã bỏ lỡ phần 'h3' trong câu hỏi của bạn, và tôi đã cập nhật câu trả lời của mình để phản ánh những gì bạn muốn. Vẫn không cần jQuery. –

+0

Dude, cảm ơn Doug rất nhiều. Bạn là người đàn ông! –

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