- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
使用 addEventListner 和简单调用函数的 Onclick/Ondblclick 有什么区别?
最佳答案
onclick 等是 DOM 级别 0 事件。它们适用于所有浏览器,但不允许您轻松地将多个处理程序添加到同一元素中的同一事件。这意味着使用类似
window.onload = function () {
// THE CODE TO RUN
};
将删除任何已经存在的函数,因此您必须使用以下技巧:
(function (oldonload) {
window.onload = function () {
// THE CODE TO RUN
oldonload();
};
}(window.onload));
使用 addEventListener,您不必这样做。你只要写:
window.addEventListener("load", function () {
// THE CODE TO RUN
}, false);
它只是工作...但不是在 IE 上!在 IE 上,您必须使用 attachEvent,它在 IE 之外的任何地方都不起作用。所以你还是要这样写代码:
function yourCode () {
// THE CODE TO RUN
}
if (window.addEventListener) {
window.addEventListener('load', yourCode, false);
} else {
window.attachEvent('onload', yourCode);
}
在所有情况下,您还必须检查文档是否已经加载,因此您只需立即运行代码,而不是将其绑定(bind)到已经发生且不会再次发生的事件 - 这意味着更多代码:
function yourCode () {
// THE CODE TO RUN
}
if(document.loaded) {
yourCode();
} else {
if (window.addEventListener) {
window.addEventListener('load', yourCode, false);
} else {
window.attachEvent('onload', yourCode);
}
}
重点是,如果您希望您的事件处理代码健壮并与所有浏览器兼容,那么它很快就会变得非常复杂。这就是为什么我总是建议使用像 jQuery 这样的库来为你解决问题,这样你就不必担心这些细节,只需写下:
$('some-id').click(function () {
// THE CODE TO RUN
});
它神奇地适用于所有浏览器。
关于javascript - 使用 addEventListner 和简单地调用函数的 Onclick/Ondblclick 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5100703/
我想使用通过点击事件循环的函数在 myFunction1 和 myFunction2 之间切换 Click me. Click me. 在此脚本中我使用了 addeventlistner
这是我的代码 document.addEventListener('scroll', function (e) { var outer1 = document.getElementB
添加此代码时出现错误 Uncaught TypeError: Object [object Object] has no method 'addEventlistener',我无法理解它:( $('v
使用 addEventListner 和简单调用函数的 Onclick/Ondblclick 有什么区别? 最佳答案 onclick 等是 DOM 级别 0 事件。它们适用于所有浏览器,但不允许您轻松
嘿,想知道是否有人能帮我找出我在这段代码中出错的地方。我对编码很陌生,如果有点不稳定,我很抱歉。非常乐于接受任何反馈!我正在尝试制作一个密码生成器,提示您询问总共有多少个字符以及要包含哪些字符。 这个
我希望我的 css 样式在单击提交按钮后会发生变化,但不会发生变化。当我仅在那个时间点单击按钮时,在单击效果消失后可以看到效果整个 css 再次更改我希望即使在单击效果消失后我的 css 样式仍将保留
我是一名优秀的程序员,十分优秀!