2010-08-05 18 views
6

¿Es posible? No importa cómo, en Javascript o jQuery.Compruebe si existe el método jQuery

Por ejemplo: $.isFunction($.isFunction());

UPD: Pero cómo comprobar método de un plugin de jQuery? A veces no está listo en el momento de la llamada y genera un error. Ejemplo: $.isFunction($().jqGrid.format)

Respuesta

0

Sí,

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

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

Para pasar de una función a otra función, deje el () apagado:

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

Cuando se escribe () está llamando la función y el uso el resultado que devuelve $.isFunction() sin argumento devuelve false (porque undefined no es una función), por lo que está diciendo $.isFunction(false), que es, naturalmente, también false.

No me molestaría en usar isFunction simplemente para verificar la existencia de algo, a menos que sospeche que alguien le haya asignado un valor sin función por alguna razón. Para la comprobación de existencia pura, use el operador in:

if ('isFunction' in $) { ...