JavaScript通過(guò)事件代理高亮顯示表格行的方法
更新時(shí)間:2015年05月27日 17:18:24 作者:不吃皮蛋
這篇文章主要介紹了JavaScript通過(guò)事件代理高亮顯示表格行的方法,涉及javascript事件代理及頁(yè)面元素的操作技巧,需要的朋友可以參考下
本文實(shí)例講述了JavaScript通過(guò)事件代理高亮顯示表格行的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Highlight Rows</title>
<style type="text/css">
table {
background-color: lightgreen;
}
#third {
background-color: yellow;
}
</style>
</head>
<body>
<!-- Demonstrating "Event Delegation" to highlight table' rows
on mouseover.
Arguments can be passed via the delegate.
My site:andrew.dx.am -->
<table id="thetable" summary="highlight demo">
<tr><td>Just one</td><td>.. no another</td></tr>
<tr><td>Second</td><td>.. no another</td></tr>
<tr id="third"><td>A third</td><td>.. no another</td></tr>
<tr><td>Fourth for luck</td><td>.. no another</td></tr>
</table>
<script type="text/javascript">
var addEvent = function (elem, eventType, func) {
if ( elem.addEventListener )
addEvent = function (elem, eventType, func) {
elem.addEventListener(eventType, func, false);
};
else if ( elem.attachEvent )
addEvent = function (elem, eventType, func) {
elem.attachEvent('on' + eventType, func);
};
addEvent(elem, eventType, func);
};
var delegateEvent = function (elem, childElems, eventType, func, args) {
addEvent(elem, eventType, function (e) {
var evt = e || window.event;
var elem = evt.target || evt.srcElement;
if ( elem.nodeName.toLowerCase() == childElems.toLowerCase() ) {
func(elem, args);
}
});
};
function highlightRows(obj, args) {
if (args && args.over) {
obj.prevColour = obj.parentNode.style.backgroundColor;
obj.parentNode.style.backgroundColor = args.colour;
if (args.index && obj.title == "")
obj.title = "Row " + obj.parentNode.rowIndex;
} else {
obj.parentNode.style.backgroundColor = "";
if (obj.title.indexOf("Row ") + 1)
obj.title = "";
}
}
function init() {
delegateEvent(document.getElementById('thetable'), 'td', 'mouseover',
highlightRows, {'colour': 'lightblue', 'over': true,
'index': true});
delegateEvent(document.getElementById('thetable'), 'td', 'mouseout',
highlightRows, {'over': false});
}
addEvent(window, 'load', init);
</script>
</body>
</html>
希望本文所述對(duì)大家的javascript程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:
- JavaScript中的事件處理程序
- JS事件流與事件處理程序?qū)嵗治?/a>
- JavaScript常見事件處理程序?qū)嵗偨Y(jié)
- JavaScript事件處理程序詳解
- 深入理解在JS中通過(guò)四種設(shè)置事件處理程序的方法
- JavaScript的事件代理和委托實(shí)例分析
- js中的事件委托或是事件代理使用詳解
- JavaScript事件代理和委托詳解
- js事件委托和事件代理案例分享
- JS實(shí)現(xiàn)為動(dòng)態(tài)添加的元素增加事件功能示例【基于事件委托】
- javascript事件委托的方式綁定詳解
- JS事件處理機(jī)制及事件代理(事件委托)實(shí)例詳解
相關(guān)文章
JavaScript中setInterval的用法總結(jié)
這篇文章主要是對(duì)JavaScript中setInterval的用法進(jìn)行了詳細(xì)的總結(jié)介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-11-11
toString.call()通用的判斷數(shù)據(jù)類型方法示例
這篇文章主要給大家介紹了關(guān)于toString.call()通用的判斷數(shù)據(jù)類型方法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
處理Axios返回Promise對(duì)象的幾種常見方式
Axios返回的是Promise對(duì)象,這意味著可以使用Promise的.then()、.catch()和.finally()方法來(lái)處理異步操作的結(jié)果,本文詳細(xì)介紹了處理Axios返回Promise對(duì)象的幾種常見方式,需要的朋友可以參考下2024-09-09
基于JavaScript實(shí)現(xiàn)圖片放大鏡功能
在一些電商網(wǎng)站上,經(jīng)??吹接猩唐穲D片被放大查看的功能,所以本文將使用前端技術(shù)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的圖片放大鏡功能,希望能給大家?guī)?lái)一定的幫助2023-06-06
用Javascript輕松制作一套簡(jiǎn)單的抽獎(jiǎng)系統(tǒng)
用Javascript輕松制作一套簡(jiǎn)單的抽獎(jiǎng)系統(tǒng)...2006-12-12

