成组元素的JavaScript事件处理

简介:


如果一个页面上有多个button需要添加事件处理,而对这些元素的处理方式有都是类似的,比如有10个button,我们可以为每个button都写一个事件处理函数,不过费时费力。

比如:

<input id="Button1" type="button" value="button1" onclick="handler1()" /><br />
<input id="Button2" type="button" value="button2" onclick="handler2()" /><br />

一个较好的办法是对他们的父对象间进行事件处理,JavaScript的事件会通过冒泡机制传导到其父对象,并能通过srcElement获取事件的起始元素。 可以在button上面加个div元素并给这个div添加onclick事件处理,这样代码简洁,执行也更高效。

image

<script type="text/javascript">
    window.onload = function () {

        var isFirxFox = function () {
            return navigator.userAgent.indexOf("Firefox") > 0 ? true : false;
        }

        var clickHandler = function (index) {
            //handle click event here
            alert(index);
        }

        var btnGroup = document.getElementById("btnGroup");

        btnGroup.addEventListener("click", function (event) {

            var targetId;
            if (isFirxFox()) {
                //for Firefox
                targetId = event.target.id;
            }
            else {
                //For IE, Chrome
                targetId = event.srcElement.id;
            }

            var index = targetId.slice(6);
            clickHandler(index);

//            switch (targetId) {
//                case "Button1": alert("btn1 clicked"); break;
//                case "Button2": alert("btn2 clicked"); break;
//                case "Button3": alert("btn3 clicked"); break;
//                case "Button4": alert("btn4 clicked"); break;
//                case "Button5": alert("btn5 clicked"); break;
//                default:
//                    alert("other btns are clicked");

//            }

        });
    }
</script>
    <h2>
        Welcome to ASP.NET!
    </h2>
    <div id="btnGroup">
        <input id="Button1" type="button" value="button1" /><br />
        <input id="Button2" type="button" value="button2" /><br />
        <input id="Button3" type="button" value="button3" /><br />
        <input id="Button4" type="button" value="button4" /><br />
        <input id="Button5" type="button" value="button5" /><br />
        <input id="Button6" type="button" value="button6" /><br />
        <input id="Button7" type="button" value="button7" /><br />
        <input id="Button8" type="button" value="button8" /></div>
作者: 峻祁连
邮箱:junqilian@163.com 
出处: http://junqilian.cnblogs.com 
转载请保留此信息。



本文转自峻祁连. Moving to Cloud/Mobile博客园博客,原文链接:http://www.cnblogs.com/junqilian/archive/2013/01/20/2868809.html ,如需转载请自行联系原作者
目录
打赏
0
0
0
0
23
分享
相关文章
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
|
5月前
|
js两种移除事件的方法
js两种移除事件的方法
59 3
盘点原生JavaScript中直接触发事件的方式
本文全面探讨了原生JavaScript中触发事件的多种方式,包括`dispatchEvent`、`Event`构造函数、`CustomEvent`构造器、直接调用事件处理器以及过时的`createEvent`和`initEvent`方法。通过技术案例分析,如模拟点击事件、派发自定义数据加载事件和实现提示框系统,帮助开发者掌握这些方法在实际开发中的应用,提升灵活性与兼容性。
47 3
JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用
本文深入讲解了 JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用。
100 5
.js的dom元素操作
【10月更文挑战第29天】通过灵活运用这些 DOM 元素操作方法,JavaScript 可以实现丰富的网页交互效果,如动态更新页面内容、响应用户操作、创建和删除页面元素等。在实际开发中,开发者可以根据具体的需求和场景,选择合适的 DOM 元素操作方法来实现所需的功能,为用户提供更加流畅和动态的网页体验。
js事件队列
【10月更文挑战第15天】
86 6
原生js如何获取dom元素的自定义属性
原生js如何获取dom元素的自定义属性
149 4
|
5月前
|
js删除数组中已知下标的元素
js删除数组中已知下标的元素
70 4
JS 删除数组元素( 5种方法 )
JS 删除数组元素( 5种方法 )
122 1

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等