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