无法用addEventListener注册onclick
unable to register onclick with addEventListener
我只是想为div
注册onclick
,但它不起作用。相反,在页面加载时触发对alert
的调用。
function print()
{
alert(' div clicked..');
}
var divElement = document.getElementById("content");
divElement.addEventListener("onclick", print());
这是一个jsFiddle
问题是您不需要on
前缀。print
不应该有空括号。空括号将导致函数执行,其返回值将作为函数调用——这是而不是您想要的。
试试这个:
var divElement = document.getElementById("content");
divElement.addEventListener("click", print);
这是一个更新后的工作jsFiddle。
编辑:根据Ian下面的评论,这里有一个帮助函数,用于向后兼容某些版本的Internet Explorer。
function AttachEventListener(element, event, handler) {
if (element.addEventListener) {
element.addEventListener(event, handler, false);
} else if (element.attachEvent) {
element.attachEvent('on' + event, handler);
} else {
alert('Invalid element specified for AttachEventListener');
}
}
不使用divElement.addEventListener("click", print)
,而使用AttachEventListener(divElement, 'click', print)
。
addEventListener
,而在使用attachEvent
时需要 on
前缀。这个辅助函数将为您省去对每个事件绑定进行特性检查的麻烦。
你应该这样写:
divElement.addEventListener("click", print);
print
是一个指向你的函数的变量。
print()
是该函数的输出。(没有输出,所以是undefined
)
由于您想要分配函数,而不是输出,因此必须使用print
。
也不需要on
前缀。
转眼间:http://jsfiddle.net/AEjKC/
相关文章:
- 如何在执行此特定onclick事件时执行JavaScript函数
- Setting default onclick behavior for <img> tag in gene
- Javascript全局onclick监听器
- 如何调用“;链接_;在onclick事件上使用Javascript
- onclick函数需要双击,因为类分配延迟
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 使用onclick绘制SVG路径
- 如何将数据从onclick按钮传递到变量
- 选择onclick事件jquery
- I'我设计了一个下拉菜单,onclick会出现,而on blur会消失
- 如何刷新列表框内容onclick或blur事件
- onClick处理程序未向ReactDOMServer.renderToString注册
- 如何选择所有 标记并注册 onclick 事件
- 如何在GridX中注册onClick监听器到dijit Button
- 在通用Windows应用程序(JS/HTML)的HTML中注册onclick事件
- Onclick没有注册,一直告诉我它没有定义
- 如何注册一个onclick事件,以便它知道从哪个对象调用它
- 无法用addEventListener注册onclick
- 为什么要避免onclick HTML属性而使用标准事件注册模型呢?
- JS事件注册代替onclick..但如何使其可重复使用呢?解析ID