繁体   English   中英

检查JQuery对象是否在命名空间下有事件的优雅方法

[英]Elegant way to check if JQuery object has an event under a namespace

对于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它将是未定义的)AND它在'proxy'命名空间下有一个事件。

有没有更好的方法来做到这一点而不抛出错误? 如果我可以这样做,那就太好了:

if($(this).data('events').proxy.length === 0) {
    // Do something if there are no proxy events
}

但是 ,如果没有绑定到'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
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM