我有一个可以显式调用的函数,也可以在事件触发时调用。如果它是由事件触发的,我需要忽略一个可能具有有用值的函数参数。
是否有可靠的跨浏览器方式我可以检查对象是否是一个事件?
我们一直在使用它,但意识到它在IE7中不起作用,因为Event
未定义:
var view = {
save: function (data) {
if (data.constructor === Event.constructor) {
// It's an event.
}
}
};
答案 0 :(得分:2)
我认为“穷人”的方式是检查所有Event
个对象是否存在某种方法 - 无论它们是如何创建的:
if (!(typeof data.altKey == "undefined")) {
// it's an Event
}
修改强>
由于在某些版本的IE中我不接受preventDefault,我已经改变了使用不同属性的解决方案,实际上任何公共属性都应该可以正常工作。