如何检查功能是否存在

时间:2020-07-26 15:32:37

标签: javascript jquery

如何检查功能是否存在?

已接受答案here,但无效

function sb_save(){
alert('saving');
}

$('button').on('click', function(){
 if ($.fn.sb_save){sb_save();}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button>CLICK</button>

3 个答案:

答案 0 :(得分:2)

function sb_save(){
alert('saving');
}

$('button').on('click', function(){
 if (typeof sb_save==="function"){
sb_save();
 }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button>Click</button>

答案 1 :(得分:0)

function sb_save(){
    alert('saving');
}

$('button').on('click', function(){
    if (typeof sb_save === 'function') {
        sb_save();
    }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button>CLICK</button>

答案 2 :(得分:-1)

鉴于您显示的代码示例,您正在尝试检查是否已使用该功能扩展了jQuery:

if ($.fn.sb_save)

您尝试调用该函数的方式

sb_save();

表明这不是您想要的。

相反,要简单地检查sb_save是否是可执行对象(又称function),请使用您所链接问题中最受支持的答案:

if (typeof sb_save === 'function')

function sb_save() {
  alert('saving');
}

$('button').on('click', function() {
  if (typeof sb_save === 'function') {
    sb_save();
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button>CLICK</button>

相关问题