編輯:注意,如果你不關心IE6的支持,您可以使用CSS :hover
僞選擇更改背景。這應該是第一個考慮因素。
#newTable tr:hover {
background: #E1EBF4;
}
鑑於當前的代碼,你可以只用你的$tr
參考表:
function addRecentData(data) {
$('#newTable tr:last').after('<tr><td class="name"></td><td class="id"></td></tr>');
var $tr = $('#newTable tr:last');
$tr.find('.name').html(data.Name);
$tr.find('.id').html(data.Id);
$tr.mouseover(function() {
$(this).css('backgroundColor','#E1EBF4');
// this.style.backgroundColor = '#E1EBF4'; // or you could do this
});
}
另一種方法是使用inserAfter()
代替after()
,並立即分配變量。
function addRecentData(data) {
var $tr = $('<tr><td class="name"></td><td class="id"></td></tr>')
.insertAfter('#newTable tr:last');
$tr.find('.name').html(data.Name);
$tr.find('.id').html(data.Id);
$tr.mouseover(function() {
$(this).css('backgroundColor','#E1EBF4');
// this.style.backgroundColor = '#E1EBF4'; // or you could do this
});
}
或者,如果每個<tr>
應該得到的鼠標懸停,你可以使用在#newTable
.delegate()
把鼠標懸停的照顧。
$('#newTable').delegate('tr', 'mouseover', function() {
$(this).css('backgroundColor','#E1EBF4');
// this.style.backgroundColor = '#E1EBF4'; // or you could do this
});
現在<tr>
元素會自動獲取你想要的時候都添加到表的功能。
$(this).css('backgroundColor','#E1EBF4');對我來說工作不太好。另一個選項效果很好。謝謝! – MrM 2010-08-11 16:30:46