2010-08-05 2 views
6

Возможно ли это? Независимо от того, как, в Javascript или jQuery.Проверьте, существует ли метод jQuery

Например: $.isFunction($.isFunction());

UPD: Но как проверить метод плагин JQuery? Иногда он не готов в момент его вызова и генерирует ошибку. Пример: $.isFunction($().jqGrid.format)

ответ

0

Да,

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

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

Чтобы передать функцию в другую функцию, оставьте () офф:

$.isFunction($.isFunction); // true! 

Когда вы пишете () вы вызова функции, и используя результат возвращается. $.isFunction() без аргументов возвращает false (потому что undefined не является функцией), поэтому вы говорите $.isFunction(false), что, естественно, также false.

Я бы не стал использовать isFunction только для того, чтобы проверить наличие чего-либо, если вы не подозреваете, что кому-то ему почему-то присвоили ему не функциональное значение. Для проверки чистоты использования используйте оператор in:

if ('isFunction' in $) { ... 
Смежные вопросы