直接貼代碼:
<script type="text/javascript">??????? //動(dòng)態(tài)給js添加class屬性??????? function addClass(element, value) {??????????? if (!element.className) {??????????????? element.className = value; //如果element本身不存在class,則直接添加class為value的值??????????? } else {??????????????? element.className += " " + value; //如果element之前有一個(gè)class值,注意中間要多一個(gè)空格,然后再加上value的值??????????? }??????? }??????? //隔行換色??????? function stripeTable() {??????????? var tables = document.getElementsByTagName("table"); //遍歷文檔中的所有table??????????? for (var i = 0; i < tables.length; i++) {??????????????? var rows = document.getElementsByTagName("tr");??????????????? for (var j = 0; j < rows.length; j++) {??????????????????? if (j % 2 == 0) {??????????????????????? addClass(rows[j], "tablelight"); //如是偶數(shù)行,則添加class為odd的屬性??????????????????????? //rows[j].setAttribute("class", "odd");??????????????????? }??????????????? }??????????? }??????? }??????? //鼠標(biāo)經(jīng)過(guò)時(shí)高亮顯示??????? function highlightRows() {??????????? var rows = document.getElementsByTagName("tr");??????????? for (var i = 0; i < rows.length; i++) {??????????????? rows[i].oldClassName = rows[i].className; //首先保存之前的class值??????????????? rows[i].onmouseover = function () {??????????????????? addClass(this, "tablemouse"); //鼠標(biāo)經(jīng)過(guò)時(shí)添加class為highlight的值??????????????? }??????????????? rows[i].onmouseout = function () {??????????????????? this.className = this.oldClassName; //鼠標(biāo)離開時(shí)還原之前的class值??????????????? }??????????? }??????? }??????? window.onload = function () {??????????? stripeTable();??????????? highlightRows();??????? }</script><asp:Panel ID="plItem" runat="server">?? <tr>???? <td>????? <a href="javascript:Edit('<%#Eval("id") %>')">編輯</a>???? <asp:LinkButton ID="lbtDelete" CommandName="Delete" CommandArgument='<%#Eval("id") %>' runat="server" OnClientClick="return confirm('確定刪除嗎?')">刪除</asp:LinkButton>????? </td>????? <td>??????? <asp:Label runat="server" ID="lblID" Text='<%#Eval("id") %>'></asp:Label></td>???????? <td><%#Eval("name") %></td>??? <td><%#Eval("author") %></td>??????? <td><%#Eval("ISBN") %></td>?????? <td><%#Eval("publisher") %></td>?????? <td><%#Eval("language") %></td>????? <td><%#Eval("price") %></td>???? <td><%#Eval("putin_time") %></td>???? <td><%#Eval("type") %></td>?????? </tr></asp:Panel>
問(wèn)題:
1、此例使用了window.onload,目前的理解是對(duì)stripeTable()和highlightRows()兩個(gè)方法的監(jiān)聽,也就是當(dāng)控件觸發(fā)時(shí)執(zhí)行。但是此處的window.onload是對(duì)方法的監(jiān)聽,但是卻不知道什么地方引用,進(jìn)而觸發(fā)這兩個(gè)方法,不知道為什么會(huì)觸發(fā)執(zhí)行。2、當(dāng)在<tr>中添加自定義方法<tr onmouseout="mouseout()">,javascript中添加對(duì)應(yīng)的方法function mouseout(){alert("鼠標(biāo)移出");}后,卻根本不會(huì)觸發(fā)新添加的方法。于是將function mouseout()方法也放到window.onload方法中??????? window.onload = function () {??????????? stripeTable();??????????? highlightRows();??????????? mouseout();??????? }結(jié)果只是在頁(yè)面載入完成后執(zhí)行一次,并不是鼠標(biāo)移出數(shù)據(jù)行后彈出。
3 回答

慕絲7291255
TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊
隔行換色css就可以搞定啊。
綁定事件也不用循環(huán)一個(gè)個(gè)綁,用jquery選擇器綁一次就可以啊
- 3 回答
- 0 關(guān)注
- 442 瀏覽
添加回答
舉報(bào)
0/150
提交
取消