jQuery - 检查函数是否已定义

Del*_*ung 0 javascript jquery

我不能为我的生活弄清楚如何做到这一点.我的jquery名称以某种方式间隔,因为它以NWO.{function-name}作为前缀,使其更有条理.所以它看起来像这样:

var NWO = NWO || {}

NWO.Chat = (function() {
   return{
   init : function($objects) {
   console.log('do something');         
   } }
}
}());

jQuery(document).ready(function(){
  NWO.Chat.init($('div').find('a.chat'));
});
Run Code Online (Sandbox Code Playgroud)

现在聊天元素不在每个页面上,所以在聊天链接不存在的某些页面上我得到一个 NWO.Chat是未定义的.我想对于没有聊天链接的页面我可以做这样的事情以避免错误.

if(jQuery().NWO.Chat){ NWO.Chat.init($('div').find('a.chat')); }
Run Code Online (Sandbox Code Playgroud)

要么

if($.fn.NWO.Chat){ NWO.Chat.init($('div').find('a.chat')); }
Run Code Online (Sandbox Code Playgroud)

但似乎都没有工作我仍然得到错误.当聊天链接不在页面上时,如何避免js错误.我一直在敲打几个小时.提前致谢.

Aru*_*hny 5

NWO 不是jQuery插件,所以与jQuery无关,它是一个对象(看起来像一个全局范围),所以你可以做

if (NWO && NWO.Chat && typeof NWO.Chat.init == 'function') {
    NWO.Chat.init($('div').find('a.chat'));
}
Run Code Online (Sandbox Code Playgroud)