Maj*_*jid 13 javascript firefox events
我有这个脚本:
function postBackByObject(e) {
var o = window.event.srcElement || e.target;
if (o.tagName == "INPUT" && o.type == "checkbox") {
__doPostBack("", "");
}
}
Run Code Online (Sandbox Code Playgroud)
我用这个脚本onclick="postBackByObject();".
但在Firefox 21中我收到此错误:
TypeError:window.event未定义
我错了什么?
Nie*_*sol 15
那是因为它是.window.event适用于旧版本的IE.
这样做的典型方法是:
function postBackByObject(e) {
e = e || window.event;
var o = e.srcElement || e.target;
// ...
}
Run Code Online (Sandbox Code Playgroud)
您正在内联事件 onclick="postBackByObject();"
尝试传递this(事件目标)以onclick="postBackByObject(this);"
修改您的函数以处理此更改:
function postBackByObject(e) {
if (e.tagName == "INPUT" && e.type == "checkbox") {
__doPostBack("", "");
}
}
Run Code Online (Sandbox Code Playgroud)
更好的选择是使用附加事件 addEventListener
如果你的标记看起来像:
<div id="TvCategories" onclick="postBackByObject(this);" />
Run Code Online (Sandbox Code Playgroud)
然后
document.getElementById('TvCategories').addEventListener('click', postBackByObject);
Run Code Online (Sandbox Code Playgroud)
postBackByObject使用此方法时,您的功能保持不变.
| 归档时间: |
|
| 查看次数: |
46987 次 |
| 最近记录: |