I don't agree that this is confusing. I find it to be very beneficial to have a method signature that grows to meet your needs but doesn't get in your way when you don't need all of it. I know we've received both insult and praise for our overloaded methods but that is how we roll! :) It might be inconsistent for the moment but we can fix that. This has been an oft-requested feature (even by the jQuery UI team) specifically for events. Certainly we'll need to review the other places we use a callback and see if it makes sense to provide an optional alternate scope. I'm all for the pattern of anywhere we provide a callback, an optional scope should follow. However, we need to make sure people still have access to the actual element.
Although just giving everyone a $.bind method is much easier on us, I don't think it fits very well into the philosophy of do more, write less. I'd also argue that this would be more of a learning curve to some than the optional scope param. I'm not adverse to providing both though since we'll most likely need $.bind if we start adding optional scopes to other methods in the API. It would be as simple as exposing another jQuery utility method. Also, I forgot to include the helper methods, like click, in this patch. These would also need include the ajax event methods and probably the ready shortcuts. -- Brandon Aaron On Mon, May 4, 2009 at 7:12 AM, Ariel Flesler <[email protected]> wrote: > > I like it... but I think it is confusing and inconsistent. > We add this for events, but why not for animations ? or ajax > requests ? > > Also... you need to document, the 'this' of the handler will be the > currentTarget, UNLESS you passed a scope to bind(). I think features > like this affect the learning curve and confuse novice users. > > As I see it, I'd rather add a static method like $.bind. > > $(...).bind("type", $.bind(scope,fn)); > > $.bind should copy the guid ($.event.proxy) so that the returned > function can be unbound using just fn and there's no need to save it > in a var. > > > My $0.02 > > Cheers > -- > Ariel Flesler > On May 4, 1:47 am, Brandon Aaron <[email protected]> wrote: > > Looking for any feedback on #3699 before committing, which is for > allowing > > an alternative scope for events. There is a patch attached to the ticket. > > The ticket actually proposes a method signature that doesn't really fit > > jQuery's style. I added a patch that allows the following call signature > > instead. > > $(...).bind("type", fn, scope); > > $(...).bind("type", data, fn, scope); > > > > This also applies to .one() and .live(). > > > > The patch utilizes the internal event.proxy method with a tweak to > include > > an optional scope. > > > > -- > > Brandon Aaron > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "jQuery Development" group. To post to this group, send email to [email protected] 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 -~----------~----~----~----~------~----~------~--~---
