How about something like  (although i admit the function name could
use some thinking, heh)

(function($) {
    $.fn.showorhide = function(bool) {
           if (bool) {
               $(this).show();
           }
           else {
               $(this).hide();
           }
           return this;
    };
})(jQuery);




On Nov 18, 9:02 am, "Dylan Verheul" <[EMAIL PROTECTED]> wrote:
> On Tue, Nov 18, 2008 at 14:56, Karl Swedberg <[EMAIL PROTECTED]> wrote:
> > It struck me that I often have to write something like this:
>
> > if (cond) $(this).show() else $(this).hide();
>
> > Since jQuery is about reducing and chaining, wouldn't it be nice if I
> > could write it like this:
>
> > $(this).toggle(cond); // shows if cond evaluates to true, else hides
>
> > Of course a new function showhide could be made for this, but toggle
> > seems a likely candidate for overloading.
>
> > Not sure if toggle(cond) is the best choice, though. It's already pretty
> > overloaded as it is, and it can already take a string or numeric argument
> > for speed (e.g. 'slow'), which means you'd have to make sure that cond ===
> > true, not just cond == true.
>
> Hmm, I actually checked the docs for that because that would make
> .toggle an unsuitable overloader. The docs said toggle doesn't take
> arguments:http://docs.jquery.com/Effects
> Outdated?
>
> > Maybe a simple plugin would be more appropriate here. Something like this
>
> That would be no problem at all of course.

Reply via email to