javascript
  • html
  • javascript-events
  • onmouseover
  • 2011-02-04 4237 views 5 likes 
    5

    Tôi cần thay đổi nền td thành màu xám và văn bản trong một td khác khi chuột của người dùng đi qua td được đề cập đầu tiên.Sự kiện MouseOver để thay đổi nền và văn bản TD

    Tôi đã làm điều này cho đến nay:

    <td onMouseOver="this.style.background='#f1f1f1'" onMouseOut="this.style.background='white'"> 
    

    nhưng điều này chỉ thay đổi nền của td đầu tiên và không làm thay đổi văn bản trong td thứ hai

    bất kỳ ý tưởng xin vui lòng?

    +1

    Sử dụng khung như jQuery. – Petah

    +1

    Bạn nên sử dụng CSS ': hover' để thay đổi kiểu trên chuột. –

    +0

    'thay đổi nền của td' đầu tiên: vì đó chính xác là mã đang làm, thay đổi nền cho một 'td' :-) – Nivas

    Trả lời

    9

    Có xem xét này:

    function highlightNext(element, color) { 
        var next = element; 
        do { // find next td node 
         next = next.nextSibling; 
        } 
        while (next && !('nodeName' in next && next.nodeName === 'TD')); 
        if (next) { 
         next.style.color = color; 
        } 
    } 
    
    function highlightBG(element, color) { 
        element.style.backgroundColor = color; 
    } 
    

    HTML:

    <td onMouseOver="highlightBG(this, 'red');highlightNext(this, 'red')" 
        onMouseOut="highlightBG(this, 'white');highlightNext(this, 'black')" > 
    

    DEMO

    Lưu ý rằng việc thêm các xử lý sự kiện trong HTML được không được coi là thực hành tốt.


    Depending on which browser you want to support (nó chắc chắn sẽ không hoạt động trong IE6), bạn thực sự nên xem xét phương pháp CSS sẽ hoạt động ngay cả khi JS bị tắt. Là ít hơn nhiều mã và nó sẽ được dễ dàng hơn để thêm hành vi này với nhiều yếu tố:

    td:hover { 
        background-color: red;   
    } 
    
    td:hover + td { 
        color: red; 
    } 
    

    DEMO

    +0

    highlightNext didnt work:/ –

    +0

    @C .: Bạn có gặp lỗi không? Bởi vì nó hoạt động trong bản demo của tôi như bạn có thể thấy. –

    +0

    không, tôi không gặp lỗi. nó lạ. nó chỉ ddnt nhập chức năng –

    0

    Bạn nên cho rằng td khác một id và truy cập nó từ xử lý sự kiện onmouseover của bạn. Có lẽ bạn nên đặt mã onmouseover đó vào hàm riêng của nó và gọi nó từ onmouseover.

    +0

    thats những gì im cố gắng nhưng tiếc là tôi dường như không thể làm cho nó hoạt động –

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