例如,假设我们要检查“this”在命名空间代理下是否有任何事件;我目前这样做:
// 'this' is not a DOM element
if ($($(this).data('events')).length === 0 || $($(this).data('events').proxy).length === 0) {
// Do something If there are no events
}
这就是我现在这样做的方式,以确保已创建 .data('events') 对象(如果在读取 .data('events') 之前没有调用 .bind ,它将是未定义的)和它在“代理”命名空间下有一个事件。
有没有更好的方法来做到这一点而不会引发错误?如果我能做这样的事情会很棒:
if($(this).data('events').proxy.length === 0) {
// Do something if there are no proxy events
}
但是,如果没有任何绑定到 'this' 的代码片段将抛出错误,因为 .data('events') 将是未定义的,因此不会有 .proxy 访问器。