1
當該類的任何成員具有鼠標懸停時,我需要爲同一類的所有成員生成背景顏色更改。如何將Javascript事件綁定到動態類
這裏的JavaScript的:
var array = ['abc','def','abc','xyz'];
var row;
var cell = [];
var rowClass = [];
for (var i = 0; i < array.length; i++){
// Insert an empty <tr> element
row = document.getElementById("myTable").insertRow(i+1);
// Insert cells <td></td>
for(var j = 0; j < 2; j++){
cell[j] = row.insertCell(j);
};
// fill cells <td></td>
cell[0].innerHTML = 'row ' + i;
cell[1].innerHTML = array[i];
cell[1].setAttribute("class", array[i]);
}
var k0 = 0;
rowClass[k0] = '.' + array[k0];
$(document).on('mouseover', rowClass[k0] ,function() {$(rowClass[k0]).css("background-color", "yellow");});
$(document).on('mouseout', rowClass[k0] ,function() {$(rowClass[k0]).css("background-color", "");});
var k1 = 1;
rowClass[k1] = '.' + array[k1];
$(document).on('mouseover', rowClass[k1] ,function() {$(rowClass[k1]).css("background-color", "yellow");});
$(document).on('mouseout', rowClass[k1] ,function() {$(rowClass[k1]).css("background-color", "");});
var k2 = 2;
rowClass[k2] = '.' + array[k2];
$(document).on('mouseover', rowClass[k2] ,function() {$(rowClass[k2]).css("background-color", "yellow");});
$(document).on('mouseout', rowClass[k2] ,function() {$(rowClass[k2]).css("background-color", "");});
var k3 = 3;
rowClass[k3] = '.' + array[k3];
$(document).on('mouseover', rowClass[k3] ,function() {$(rowClass[k3]).css("background-color", "yellow");});
$(document).on('mouseout', rowClass[k3] ,function() {$(rowClass[k3]).css("background-color", "");});
這裏是一個JSfiddle。
如何用適當的代碼替換四個明確的'on'語句破解?在堆棧溢出嘗試循環和各種答案後,這是我能做的最好的工作。
感謝robbmj。我重寫了我的代碼,讓你接近並且工作正常。 – MonkeyBusiness
@MonkeyBusiness我很高興聽到它。 – robbmj