我只是想注册onclick的div,但它不工作.相反,alert加载页面时会触发cal to .
function print()
{
alert(' div clicked..');
}
var divElement = document.getElementById("content");
divElement.addEventListener("onclick", print());
Run Code Online (Sandbox Code Playgroud)
这是一个jsFiddle.
问题是你没有需要的on前缀.而且print应该不会有空括号.空括号将导致函数执行,并且其返回值将作为要调用的函数传递 - 这不是您想要的.
试试这个:
var divElement = document.getElementById("content");
divElement.addEventListener("click", print);
Run Code Online (Sandbox Code Playgroud)
这是一个更新的工作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');
}
}
Run Code Online (Sandbox Code Playgroud)
而不是使用divElement.addEventListener("click", print),你会这样做AttachEventListener(divElement, 'click', print).
在主要使用辅助函数的原因是因为旧版本的Internet Explorer 不具备addEventListener,并且不要求on使用时的前缀attachEvent.这个辅助函数将为您节省在每个事件绑定时自行检查功能的麻烦.
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |