2014-09-09 16 views
7

Tôi đang sử dụng JQuery DataTable,
tôi cần phải thay đổi màu sắc của hàng trên chuột qua sự kiện (hàng highligthed)
tôi đã cố gắng:Jquery thay đổi màu DataTable hàng

table.display tr.even.row_selected td { 
    background-color: red; 
} 

table.display tr.odd.row_selected td { 
    background-color: blue; 
} 

JSFiddle

+0

Nó thay đổi màu khi di chuột. Bạn đang cố gắng làm gì? – Albzi

+0

lớp "row_selected" không tồn tại trên trang của bạn. Bạn cần thêm một chút JS để thêm lớp vào hàng đã chọn (giả sử bạn đang làm điều này từ một onclick) và sau đó css của bạn sẽ hoạt động. – steakpi

+0

mẹo: thay vì sử dụng .hoặc .odd, sử dụng css tr: nth-child (lẻ) hoặc tr: nth-child (thậm chí) – Roi

Trả lời

10

Hãy thử điều này CSS:

table.display tbody tr:nth-child(even):hover td{ 
    background-color: red !important; 
} 

table.display tbody tr:nth-child(odd):hover td { 
    background-color: blue !important; 
} 

UPDATED jsFIDDLE DEMO

+0

Yup đó là cách tiếp cận được chấp nhận nhất, mặc dù nó sẽ tạo ra .odd, .even lớp học vô dụng, dù sao tôi nhận xét về anh ta rằng sử dụng nth-con thay vì làm cho các lớp học như vậy. – Roi

0

Hãy thử điều này

table.display tr.even td:hover{ 
    background-color: red; 
} 

table.display tr.odd td:hover{ 
    background-color: blue; 
} 
0

Bạn chỉ có thể làm

FIDDLE

#example tr td { 
    height: 50px; 
} 
table.display tr.even td:hover { 
    background-color: red; 
} 

table.display tr.odd td:hover { 
    background-color: blue; 
} 
0

Nếu bạn muốn toàn bộ hàng để thay đổi màu sắc bạn có thể làm điều này

#example tr td { 
    height: 50px; 
} 
table#example tr.even:hover td { 
    background-color: red; 
} 

table#example tr.odd:hover td { 
    background-color: blue; 
} 

http://jsfiddle.net/leighking2/t2g9yft6/

+0

vì css trong jquery.datatable.css nhắm mục tiêu cụ thể hơn đến td. trong câu hỏi. Bằng cách sử dụng id trong ví dụ của tôi, điều này làm cho nó trở thành bộ chọn cụ thể nhất và do đó có kiểu được áp dụng. Bạn luôn có thể sử dụng! Quan trọng để ghi đè bất kỳ quy tắc nào mà không phải lo lắng về mức độ cụ thể của bạn nhưng tôi cố tránh tuyến đường đó vì nó có thể khiến bạn khó chịu sau này.Dưới đây là một bài viết hay để giải thích cách bạn có thể tìm ra phong cách nào sẽ được áp dụng http://webdesign.about.com/od/advancedcss/a/aa062706.htm – Quince

0

Bạn có thể thử không? Trong CSS, td chỉ thay đổi màu. Điều này sẽ được thay đổi màu sắc hàng

somthing như thế này

$(document).ready(function() { 
    $('#example').dataTable(); 
    $('table.display tr.even').hover(function(){ 
     $(this).css('background-color','#f00'); 
    }); 
    $('table.display tr.even').mouseout(function(){ 
     $(this).css('background-color','#f9f9f9'); 
    });  
}); 

Nếu nó không phải là bắt buộc, loại bỏ nó sorting_1 tên lớp trong td đầu tiên. hoặc có thể ghi đè lên css.

2

Một trong những đoạn mã JS tôi viết ở đầu mỗi dự án là thêm một số định dạng cơ bản vào bảng. Bao gồm điều này bên trong $ (function() {...}); khối

$('table tr').mouseover(function() { 
     $(this).addClass('row_selected'); 
    }); 
    $('table tr').mouseout(function() { 
     $(this).removeClass('row_selected'); 
    }); 

Tương tự, bit này sẽ lấy đi những rắc rối của việc thêm chẵn/lẻ đánh dấu để mỗi hàng trong bảng, như bạn đang xây dựng nó

$('table').each(function() { $(this).find('tr:even').addClass('even'); }); 
$('table').each(function() { $(this).find('tr:odd').addClass('odd'); }); 
1

này?

table.display tbody .odd:hover { 
    background-color: red !important; 
} 
table.display tbody .even:hover { 
    background-color: blue !important; 
} 
Các vấn đề liên quan