A different name may help to better convey the meaning (maybe queue?)
but otherwise I prefer this syntax a lot over the other proposals so
far.

Jörn

On Sun, Oct 5, 2008 at 6:57 PM, John Resig <[EMAIL PROTECTED]> wrote:
>
> I want to add one more proposal to the pile:
> http://dev.jquery.com/~john/plugins/chain/
>
> A new .chain() method that allows you to write code like this:
>  jQuery("div")
>   .chain("hide", "slow")
>     .addClass("done")
>     .find("span")
>       .addClass("done")
>     .end()
>     .chain("show", "slow")
>       .removeClass("done")
>     .end()
>   .end();
>
> I had messed around with implementing something similar before but at
> gotten stymied on the implementation. I appear to have it working now.
>
> --John
>
>
>
> On Sun, Oct 5, 2008 at 9:18 AM, John Resig <[EMAIL PROTECTED]> wrote:
>> I already did it:
>> http://dev.jquery.com/~john/plugins/callback/
>>
>> my other proposal:
>> http://dev.jquery.com/~john/plugins/callback/old.html
>>
>> I'm working on a third proposal now.
>>
>> A nice thing about $.callback is that it's very simple (perhaps too
>> simple - no support for chaining).
>>
>> --John
>>
>>
>>
>> On Sat, Oct 4, 2008 at 7:09 PM, Ariel Flesler <[EMAIL PROTECTED]> wrote:
>>> Why don't we make a plugin out of this ? there's no so much of a need for
>>> this on the core.
>>> Then, if it seems successful, we can add it (just like offset/dimensions).
>>>
>>> On Sat, Oct 4, 2008 at 4:26 PM, Brandon Aaron <[EMAIL PROTECTED]>
>>> wrote:
>>>>
>>>> Although it seems like we are getting further off-topic... I often pass
>>>> around function references as strings. For example this is a common pattern
>>>> that I use.
>>>> $('div')[ test() ? 'doSomething' : 'doSomethingElse' ]();
>>>> Using something like $.callback is very explicit as to its purpose. After
>>>> all callback is exactly what we call it in the docs, etc. Granted I don't
>>>> mind using anonymous callbacks, if I need the code to be cleaner, I'll use
>>>> named functions to be even more explicit. But of the other proposals I like
>>>> $.callback the best.
>>>> --
>>>> Brandon Aaron
>>>> On Sat, Oct 4, 2008 at 9:56 AM, Cloudream <[EMAIL PROTECTED]> wrote:
>>>>>
>>>>> I do not like passing a jQuery method name as a string to one special
>>>>> method.
>>>>>
>>>>> A new (and a little strange) usage to jQuery.
>>>>>
>>>>> On Oct 4, 5:06 am, "Brandon Aaron" <[EMAIL PROTECTED]> wrote:
>>>>> > I'd prefer this as well.
>>>>> >
>>>>> > I think this also helps a few common cases of var self = $(this);
>>>>> > --
>>>>> > Brandon Aaron
>>>>> >
>>>>> > On Fri, Oct 3, 2008 at 4:01 PM, Yehuda Katz <[EMAIL PROTECTED]> wrote:
>>>>> > > $.callback("addClass", "hello") is ok with me.
>>>>> > > -- Yehuda
>>>>> >
>>>>> > > On Fri, Oct 3, 2008 at 1:58 PM, Ariel Flesler <[EMAIL PROTECTED]>
>>>>> > > wrote:
>>>>> >
>>>>> > >> Yeah, well. We could provide an interface for registering these
>>>>> > >> methods
>>>>> > >> for those plugins that are interested. Still, someone could expect a
>>>>> > >> method
>>>>> > >> to be registered when it's not.
>>>>> >
>>>>> > >> The other option is to pass the method name as first argument, works
>>>>> > >> around this but it loses the I-call-the-analog-method thing.
>>>>> >
>>>>> > >> On Fri, Oct 3, 2008 at 5:51 PM, Yehuda Katz <[EMAIL PROTECTED]>
>>>>> > >> wrote:
>>>>> >
>>>>> > >>> The only tricky thing here is that because JS has no method_missing
>>>>> > >>> or
>>>>> > >>> cross-browse __noSuchMethod__, we'd be forced to explicitly write
>>>>> > >>> all the
>>>>> > >>> proxies, which could become messy when they work for core methods,
>>>>> > >>> but not
>>>>> > >>> all plugins.
>>>>> > >>> Or maybe I'm just being a nervous nelly.
>>>>> >
>>>>> > >>> -- Yehuda
>>>>> >
>>>>> > >>> On Fri, Oct 3, 2008 at 1:46 PM, Ariel Flesler
>>>>> > >>> <[EMAIL PROTECTED]>wrote:
>>>>> >
>>>>> > >>>> Note that John's code doesn't do actual currying, but partial
>>>>> > >>>> evaluation.
>>>>> >
>>>>> > >>>>http://en.wikipedia.org/wiki/Partial_evaluation
>>>>> >
>>>>> > >>>> Currying is a complex concept in comparison to the latter.
>>>>> > >>>> Anyway, you can change the name if you want, the idea is simple,
>>>>> > >>>> create
>>>>> > >>>> a closure with fixed parameters.
>>>>> > >>>> We can name it callback (though it's long)
>>>>> >
>>>>> > >>>> jQuery("#test").hide("slow", jQuery.callback.show("slow") );
>>>>> >
>>>>> > >>>> Not to hard to understand IMO, and no CS involved :)
>>>>> >
>>>>> > >>>> On Fri, Oct 3, 2008 at 5:41 PM, Yehuda Katz <[EMAIL PROTECTED]>
>>>>> > >>>> wrote:
>>>>> >
>>>>> > >>>>> As in Computer Science.
>>>>> > >>>>> Using a currying function requires people new to jQuery to go
>>>>> > >>>>> look it
>>>>> > >>>>> up, where they'll encounter:
>>>>> >
>>>>> > >>>>>http://en.wikipedia.org/wiki/Curry
>>>>> >
>>>>> > >>>>> and probably eventually:
>>>>> >
>>>>> > >>>>>http://en.wikipedia.org/wiki/Currying
>>>>> >
>>>>> > >>>>> "Given a function *f* of type [image: f \colon (X \times Y) \to
>>>>> > >>>>> Z],
>>>>> > >>>>> then *currying* it makes a function [image: \mbox{curry}(f)
>>>>> > >>>>> \colon X
>>>>> > >>>>> \to (Y \to Z)]. That is, curry(*f*) takes an argument of type *X*
>>>>> > >>>>> and
>>>>> > >>>>> returns a function of type [image: Y \to Z].*Uncurrying* is the
>>>>> > >>>>> reverse transformation."
>>>>> >
>>>>> > >>>>> Prototype added features like this to 1.6, and while they're
>>>>> > >>>>> interesting and useful, they make it hard for people coming to a
>>>>> > >>>>> codebase
>>>>> > >>>>> (especially people new to the framework) to understand what's
>>>>> > >>>>> happening in
>>>>> > >>>>> the code.
>>>>> >
>>>>> > >>>>> On Fri, Oct 3, 2008 at 1:34 PM, Ariel Flesler
>>>>> > >>>>> <[EMAIL PROTECTED]>wrote:
>>>>> >
>>>>> > >>>>>> CS as in Counter Strike ? :D
>>>>> > >>>>>> Heh, no really... what is CS, forgive my ignorance :P
>>>>> >
>>>>> > >>>>>> On Fri, Oct 3, 2008 at 5:30 PM, Yehuda Katz <[EMAIL PROTECTED]>
>>>>> > >>>>>> wrote:
>>>>> >
>>>>> > >>>>>>> Any feature that requires knowledge of CS is a no-go in my book
>>>>> > >>>>>>> :P
>>>>> > >>>>>>> -- Yehuda
>>>>> >
>>>>> > >>>>>>> On Fri, Oct 3, 2008 at 1:27 PM, Ariel Flesler
>>>>> > >>>>>>> <[EMAIL PROTECTED]>wrote:
>>>>> >
>>>>> > >>>>>>>> Eh, nothing, got it wrong.
>>>>> >
>>>>> > >>>>>>>> We could just save all these methods on a special object.
>>>>> >
>>>>> > >>>>>>>> jQuery("#test").hide("slow", jQuery.curry.show("slow") );
>>>>> >
>>>>> > >>>>>>>> The name could be changed of course.
>>>>> >
>>>>> > >>>>>>>> Or renamed methods (probably bad option)
>>>>> >
>>>>> > >>>>>>>> jQuery("#test").hide("slow", jQuery.curriedShow("slow") );
>>>>> >
>>>>> > >>>>>>>> On Fri, Oct 3, 2008 at 5:14 PM, John Resig
>>>>> > >>>>>>>> <[EMAIL PROTECTED]>wrote:
>>>>> >
>>>>> > >>>>>>>>> > It is indeed. You can't expect parameters though and you
>>>>> > >>>>>>>>> > could
>>>>> > >>>>>>>>> get conflict
>>>>> > >>>>>>>>> > with the actual parameters sent by the caller.
>>>>> >
>>>>> > >>>>>>>>> I'm not sure what you're referring to - are you referring to
>>>>> > >>>>>>>>> a bug
>>>>> > >>>>>>>>> in
>>>>> > >>>>>>>>> the code? Do you have an example?
>>>>> >
>>>>> > >>>>>>>>> --John
>>>>> >
>>>>> > >>>>>>>> --
>>>>> > >>>>>>>> Ariel Flesler
>>>>> > >>>>>>>>http://flesler.blogspot.com
>>>>> >
>>>>> > >>>>>>> --
>>>>> > >>>>>>> Yehuda Katz
>>>>> > >>>>>>> Developer | Engine Yard
>>>>> > >>>>>>> (ph) 718.877.1325
>>>>> >
>>>>> > >>>>>> --
>>>>> > >>>>>> Ariel Flesler
>>>>> > >>>>>>http://flesler.blogspot.com
>>>>> >
>>>>> > >>>>> --
>>>>> > >>>>> Yehuda Katz
>>>>> > >>>>> Developer | Engine Yard
>>>>> > >>>>> (ph) 718.877.1325
>>>>> >
>>>>> > >>>> --
>>>>> > >>>> Ariel Flesler
>>>>> > >>>>http://flesler.blogspot.com
>>>>> >
>>>>> > >>> --
>>>>> > >>> Yehuda Katz
>>>>> > >>> Developer | Engine Yard
>>>>> > >>> (ph) 718.877.1325
>>>>> >
>>>>> > >> --
>>>>> > >> Ariel Flesler
>>>>> > >>http://flesler.blogspot.com
>>>>> >
>>>>> > > --
>>>>> > > Yehuda Katz
>>>>> > > Developer | Engine Yard
>>>>> > > (ph) 718.877.1325
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Ariel Flesler
>>> http://flesler.blogspot.com
>>>
>>> >>
>>>
>>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to