After several iterations this discussion is nearing its (obvious?)
conclusion.
A LISP cond statement . For Lisp-ers COND is a thing of beauty. The
basic syntax of COND is:

(cond ((predicate1) (then do something 1))    ;if this predicate is
true,
                                              ;do something1

      ((predicate2) (then do something 2))    ;if this predicate is
true,
                                              ;do something2,
                                              ;each predicate and
action
                                              ;following the
                                              ;first one is optional

      (T (else do this))                      ;else, if none of the
                                              ;predicates returns
                                              ;TRUE, do this
)

So, please go ahead and implement jQuery.fn.cond()
What's next? LAMBDA functions as an jQyery plugin ?

Cheers ;o)

--DBJ


On Jun 9, 9:32 am, "stephb...@googlemail.com"
<stephb...@googlemail.com> wrote:
> This thread got me thinking, as chaining conditions is something I've
> found myself wanting to do occasionally when quickly writing jQuery.
> I'm not sure I'm sold on the idea of having the condition affect the
> current chain, though.  I'd prefer something more like the event
> helper syntax. Here's my contribution:
>
> jQuery.fn.extend({
>     condition: function() {
>         for (var i=0; i<arguments.length; i=i+2) {
>             if (arguments[i]) {
>                 this.condition = (arguments[i+1]) ? arguments[i+1]:
> arguments[i];
>                 this.condition();
>                 this.condition = jQuery.fn.condition;
>                 break;
>             }
>         }
>         return this;
>     }
>
> });
>
> It allows you to write chainable jQuery conditions thus:
>
> jQuery("#element").condition(condition, fn)
>
> The arguments can contain any number of condition / function pairs
> that act as 'if' and 'else if'.  If the final argument is a function
> with no preceding condition
> it acts as 'else'.  Inside the function 'this' is the current jQuery
> collection:
>
> jQuery("#element")
>     .condition( (x===1), function(){
>         this.css({color: 'blue'});
>     }), (x===2), function(){
>         this.css({color: 'red'});
>     }), function(){
>         this.css({color: 'green'});
>     });
>
> I'm really not sure of the merits of temporarily overwriting the
> condition method to get 'this' to represent the current collection.
> That's probably not clever. Certainly it means you can't put one
> condition inside another. Does anyone know a better way, without
> having to look for an unused name in the jQuery.fn.x namespace?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"jQuery Development" group.
To post to this group, send email to jquery-dev@googlegroups.com
To unsubscribe from this group, send email to 
jquery-dev+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to