对于Instance,假设我们要检查'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它将是undefined)它在'proxy'命名空间下有一个事件。
有没有更好的方法来做到这一点而不会抛出错误?它很棒如果我可以做类似的事情:
if($(this).data('events').proxy.length === 0) {
// Do something if there are no proxy events
}
但,如果没有绑定到'this'的任何内容,代码片段将抛出错误,因为.data('events')将是未定义的,因此不会有.proxy访问器
答案 0 :(得分:1)
相应地加强真实性检查:
var data_events = $(this).data('events');
if(!data_events || data_events.proxy.length === 0) {
// Do something if there are no proxy events
}