Oops, fixed a typo:
$.fn.extend({
showIf: function(fn)
{
var result;
 switch (typeof fn) {
case 'function':
result = fn.call(this);
break;
 default:
result = fn;
}
 if (result) {
$(this).show();
} else {
$(this).hide();
}
 return $(this);
}
});



-Hector


On Wed, Nov 19, 2008 at 9:29 AM, Hector Virgen <[EMAIL PROTECTED]> wrote:

> I ran into this same problem today and wrote up this quick plugin that
> accepts a boolean or function:
> $.fn.extend({
> showIf: function(fn)
>  {
> var result;
>  switch (typeof fn) {
> case 'function':
> result = fn.call(this);
>  break;
>  default:
>  result = fn;
> }
>  if (result) {
> $(this.show());
> } else {
>  $(this.hide());
> }
>  return $(this);
> }
> });
>
>
> Usage example:
>
> // Show all LI's based on value of condition
> var condition = true;
> $('ul.tabs li').showIf(condition);
>
> // Show all LI's that contain exactly 3 anchors
> $('ul.tabs li').showIf(function()
> {
>     return ($(this).find('a').length == 3);
> });
>
> I hope this helps :)
>
>
> -Hector
>
>
>
> On Tue, Nov 18, 2008 at 11:13 PM, Dylan Verheul <[EMAIL PROTECTED]>wrote:
>
>>
>> On Tue, Nov 18, 2008 at 19:58, Karl Swedberg <[EMAIL PROTECTED]>
>> wrote:
>> > On Nov 18, 2008, at 9:02 AM, Dylan Verheul wrote:
>> > Hmm, I actually checked the docs for that because that would make
>> > .toggle an unsuitable overloader. The docs said toggle doesn't take
>> > arguments:
>> >
>> > Hmmm, indeed. :) Not so much outdated as incomplete. I just went ahead
>> and
>> > added it to the docs:
>> > http://docs.jquery.com/Effects/toggle#speedcallback
>>
>> Good :-) Anyway, that means no simple overloading method is available.
>> Of course it's no problem to code it or even to write a plugin, but I
>> thought overloading an existing function would make for an interesting
>> and probably often-used functionality, which was the point of starting
>> this thread.
>>
>
>

Reply via email to