例如,假设我们要检查 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')
对象(如果在读取 之前没有调用 .bind .data('events')
它将是未定义的)并且它在 proxy
命名空间下有一个事件。
有没有更好的方法来做到这一点而不抛出错误? 如果我可以做类似的事情就太好了:
if($(this).data('events').proxy.length === 0) {
// Do something if there are no proxy events
}
但是,如果没有任何东西绑定(bind)到this
,代码片段将抛出错误,因为.data('events')
将是未定义的,因此不会有 .proxy
访问器。
最佳答案
相应地加强真实性检查:
var data_events = $(this).data('events');
if(!data_events || data_events.proxy.length === 0) {
// Do something if there are no proxy events
}
关于javascript - 检查 JQuery 对象是否在命名空间下有事件的优雅方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12289984/