I actually probably should have explicitly showed the syntax for my 
event number handling technique. I used an optional first argument which 
defined that. If the first argument isn't a number then it doesn't need 
to worry about that and just goes through with a regular event bind.

$().click(3,fn1); // fn1 called on the first three clicks
$().click(fn2); // fn2 called on every click

Using this techniques allows you to have arbitrary additional arguments 
without having to worry about it accidentally triggering a 
repeat-limited event.

-blair

Blair Mitchelmore wrote:
> Since this has come up again, I thought I'd mention - despite my distate 
> for plugin pimping - my own event++ system ( 
> http://jquery.offput.ca/event++ ) I wrote which could be used as the new 
> system. It can handle additional arguments sent to the event simply by 
> adding arguments to the event bind function call. It can also handle 
> limiting the number of event occurrence to run but as the first argument 
> to bind, click, et. al. It also handles scope arbitration using the 
> final argument provided to the event bind function call. There's a 
> little more detail available at the link above but regardless it seems 
> like it's a system people would appreciate and it barely adds any code 
> complexity to the current system.
>
> -blair
>
> Kolman Nándor wrote:
>> What about using an object instead of an array?
>>
>> bind("click", handler, 1, {x: 1});
>> bind("click", handler, {x: 1});
>> ...
>>
>> Nandi
>>
>> -----Original Message-----
>> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of "Jörn 
>> Zaefferer"
>> Sent: Wednesday, November 15, 2006 1:22 PM
>> To: jQuery Discussion.
>> Subject: Re: [jQuery] jQuery 1.1 by the end of Nov
>>
>>>> Dunno how to handle the current oneEvents like oneclick: Extending bind
>>> with an additonal parameter for the number of events to handle before the
>>> handler should be removed would be one way, another to add a bindAmount() or
>>> binds().
>>>
>>> Allowing a number of events to be defined before handler is removed 
>>> would be very cool!
>> I'm just not sure how this should be integrated into the existing API: Add a 
>> new method, add parameter to bind? How to combine this with additional 
>> parameters that are to be passed to the handler?
>>
>> Consider these:
>> bind("click", handler) // normal
>> bind("click", handler, 1) // only once
>> bind("click", handler, 5) // five times
>> bind("click", handler, [true, 5, "stuff"]) // pass additional argument to 
>> handler
>> bind("click", handler, true, 5, "stuff") // pass additonal arguments to 
>> handler
>> bind("click", handler, 1, [true, 5, "stuff"]) // ...
>> bind("click", handler, 1, true, 5, "stuff") // ...
>>
>> I think the best approach would be to pass additional arguments always as an 
>> Array. That allows the implementation to check for the type of the third and 
>> fourth argument: If it's a number, use it as amount, if it is an array, use 
>> it as additonal arguments.
>>
>> --
>> Jörn Zaefferer
>>
>> http://bassistance.de

_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/

Reply via email to