[jQuery] jQuery Kinda Plugin: every

[jQuery] jQuery Kinda Plugin: every

Since the event handling has recently been fixed to avoid IE memory leaks,
could we leverage that? After all, a timer is an event.
$("#time").interval(1000);
basically would map to this:
setInterval(function(){ $("#time").trigger("tick") }, 1000);
An interval of 0 would stop the timer. A one-time trigger could be done like
this:
$("#time").timeout(1000);
The handler looks like this:
$("#time").bind("tick", function(){
    this.text(new Date());
});
BTW, Javascript timer receipts are just numbers so they can be assigned to
an object without causing a closure.
This approach would limit to one tick event per element--some might consider
that a feature--but you could always pass in another event name as the
second arg to timeout or interval.
-----Original Message-----
From: discuss-bounces@jquery.com [mailto:discuss-bounces@jquery.com] On
Behalf Of John Resig
Sent: Thursday, October 19, 2006 1:40 PM
To: jQuery Discussion.
Subject: Re: [jQuery] jQuery Kinda Plugin: every
What if you had a trifecta of functions:
.every()
.in()
.stop()
and allow for function calls like this:
.every( 100, "text", function(){
if ( !$(this).val() )
$(this).stop("text");
});
or if you don't care about a name:
.in( "slow", function(){
$(this).hide();
})
.mouseover(function(){
$(this).stop();
});
or if you wanna get really interesting, make it so that you can stop
function calls by how long their timer is set for:
.every( 500, function(){
$("#foo").load("test.html");
})
.every( 100, function(){
if ( !$(this).val() )
$(this).stop(100);
});
Just throwing out some ideas, let me know which ones stick.
--John