How can I check if a particular jQuery UI function is available and use a different function if it i

Posted by Mark B on Stack Overflow See other posts from Stack Overflow or by Mark B
Published on 2010-06-17T10:38:27Z Indexed on 2010/06/17 10:43 UTC
Read the original article Hit count: 302

I'm writing a jQuery plugin and I would like my code to take advantage of the jQuery UI show(effect, [options], [speed], [callback]) and hide(effect, [options], [speed], [callback]) functions, which allow you to show and hide elements with a nice animation.

However, I'd also like my plugin to degrade gracefully if jQuery UI isn't available, switching back to use the basic, non-animating show() and hide() functions present in the standard jQuery API.

I'll need to test for the show and hide functions specifically, as even if jQuery UI is available it could potentially be a custom version, without the Effects components included.

At first I thought that I might be able to do something like:

if(typeof myelement.show('blind', 'slow') == 'undefined')
{
    myelement.show('blind', 'slow');
}
else
{
    myelement.show();
}

But of course this doesn't work, as even if UI isn't present, show() is still a function, it just has a different signature—so typeof returns object in either case.

So, what's the best way for me to check if jQuery UI is available to my plugin? Any help is much appreciated!

© Stack Overflow or respective owner

Related posts about JavaScript

Related posts about jQuery