检查jQuery方法是否存在

7

是否可能?无论是在Javascript还是jQuery中。

例如:$.isFunction($.isFunction());

更新:但是如何检查jQuery插件的方法?有时它在调用时未准备好,并会生成错误。例如:$.isFunction($().jqGrid.format)

2个回答

8
将一个函数传递给另一个函数时,不要加上()
$.isFunction($.isFunction);   // true!

当你写()时,你正在调用函数并使用它返回的结果。没有参数的$.isFunction()返回false(因为undefined不是函数),所以你正在说$.isFunction(false),这也自然是false
我不会费力地使用isFunction仅仅是为了检查某个东西的存在,除非你怀疑有人出于某种原因将一个非函数值分配给它。对于纯存在性检查,请使用in运算符:
if ('isFunction' in $) { ...

0

是的,

jQuery.fn.exists = function(){return jQuery(this).length>0;}

if ($(selector).exists()) {
    // code........
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接