使用javascript将事件处理程序添加到HTML元素

时间:2012-03-21 07:32:42

标签: javascript

我希望在任何用户点击它时为段落添加事件处理程序。例如,我有一个段落,当用户点击它时会显示警告,但不在HTML上使用“onclick”。

 <p id="p1">This is paragraph Click here..</p>
 <a href="http://www.google.com" id="link1" >test</a>
 document.getElementById('p1').onmouseover  = paragraphHTML; 

3 个答案:

答案 0 :(得分:24)

您可以添加事件监听器 水木清华。像这样:

 var el = document.getElementById("p1");
if (el.addEventListener) {
        el.addEventListener("click", yourFunction, false);
    } else {
        el.attachEvent('onclick', yourFunction);
    }  

(谢谢@Reorx)

Explanation Here

完整代码(在Chrome和IE7中测试):

<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1255">
        <script type="text/javascript">
            window.onload =function (){
            var el = document.getElementById("p1");
            if (el.addEventListener) {
                el.addEventListener("click", yourFunction, false);
            } else {
                el.attachEvent('onclick', yourFunction);
            }
            };
            function yourFunction(){
                alert("test");
            }
        </script>
    </head>
    <body>
        <p id="p1">test</p>

    </body>
</html>

答案 1 :(得分:6)

为了适应大多数情况,您可以编写一个函数来处理:

var bindEvent = function(element, type, handler) {
    if (element.addEventListener) {
        element.addEventListener(type, handler, false);
    } else {
        element.attachEvent('on'+type, handler);
    }
}

答案 2 :(得分:1)

tabIndex元素中添加p属性,然后您可以使用onfocus功能。

演示:http://jsfiddle.net/9y7CL/