如何检查功能是否存在?

Har*_*das 13 javascript jquery

如何检查jquery上是否有函数,但函数是否在另一个.js文件中?

validation.js:

if ($.isFunction('payment')) {
    $('[data-numeric]').payment('restrictNumeric');
    $('.cc-number').payment('formatCardNumber');
    $('.cc-exp').payment('formatCardExpiry');
    $('.cc-cvc').payment('formatCardCVC');
}
Run Code Online (Sandbox Code Playgroud)

这是假的,因为func付款在payments.js中.

Ani*_*bhi 30

试试这样吧

if (typeof payment === "function")
{
  // Do something
}
Run Code Online (Sandbox Code Playgroud)


Har*_*das 19

问题解决了.其作品:

if ($.fn.payment) {
    //do something
}
Run Code Online (Sandbox Code Playgroud)


Shi*_*jin 8

尝试检查如下,

 if (typeof payment !== 'undefined' && $.isFunction(payment)) {
    $('[data-numeric]').payment('restrictNumeric');
    $('.cc-number').payment('formatCardNumber');
    $('.cc-exp').payment('formatCardExpiry');
    $('.cc-cvc').payment('formatCardCVC');
 }
Run Code Online (Sandbox Code Playgroud)


VVV*_*VVV 6

您可以使用以下命令检查函数是否存在window

例如

var fn = window['NameOfTheFunction']; 
if(typeof fn === 'function') {
    doSomething();
}
Run Code Online (Sandbox Code Playgroud)

如果 payment.js 中的函数是自包含函数的一部分,则需要将其设置为这样,通过在自包含函数中添加以下内容,窗口对象可以“看到”它:

window.NameOfTheFunction = NameOfTheFunction;
Run Code Online (Sandbox Code Playgroud)


Lou*_*s55 6

if (typeof yourFunctionName == 'function') { 
  yourFunctionName(); 
}
Run Code Online (Sandbox Code Playgroud)

它非常适合Blogger.