Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript向HTML元素添加事件处理程序_Javascript - Fatal编程技术网

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

使用javascript向HTML元素添加事件处理程序,javascript,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

我想在一个段落中添加一个事件处理程序,以便在任何用户单击该段落时使用。例如,我有一个段落,当用户单击它时,它会显示一个警报,但不会在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; 

这是一段,请单击此处

document.getElementById('p1').onmouseover=paragraphHTML;
您可以添加事件侦听器。
Smth。像这样:

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

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


window.onload=函数(){
var el=document.getElementById(“p1”);
如果(el.addEventListener){
el.addEventListener(“单击”,函数,false);
}否则{
el.attachEvent('onclick',yourFunction);
}
};
函数yourFunction(){
警报(“测试”);
}

测试


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

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

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


演示:

这是段落单击此处..


“id=“link1”>测试文档.getElementById('p1').onmouseover=paragraphHTML;//paragraphHTML函数paragraphHTML()中没有括号({alert(This.innerHTML);}您好,它在firefox中工作,但Ie存在一个问题,它说它的对象不支持此属性或方法您说您不希望p1中出现“onclick”事件。您是否知道。addEventListener(“单击”,您的函数,false)正在将事件添加到“onclick”中“@Jun1st:嗯。你是对的。据我所知,adilahmed只是不希望它是inlineHi所有我在firefox和Ie中的工作都喜欢这样,但这是唯一的工作Firefox@adilahmed:在铬合金中工作完美。你有什么错误?在哪里添加脚本?Inside window.onload函数?在IE中,此函数将发现绑定元素没有属性“addEventListener”,然后将处理程序分配给其“onTYPE”属性,例如“onclick”。
var bindEvent = function(element, type, handler) {
    if (element.addEventListener) {
        element.addEventListener(type, handler, false);
    } else {
        element.attachEvent('on'+type, handler);
    }
}