如何检查功能是否存在?
已接受答案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>
答案 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>