Excellent Brandon, this is a great start. I suspect that in order to
get a full "behavior" plugin (one the feels natural) it'll require a
lot of code extensions. Hmm... I wonder if there's anything that can
be added to jQuery proper to ease the process.

--John

On 4/28/07, Brandon Aaron <[EMAIL PROTECTED]> wrote:

I had some down time this afternoon so I thought I would throw
something together real quick. I just checked it in:
http://dev.jquery.com/browser/trunk/plugins/behavior

This allows you to register any number of behaviors that will run any
jQuery method/plugin with any number of arguments. It also allows a
plugin developer to register their method so that behavior will auto
run when it is done. It also allows the developer to manually
run/remove a specific behavior or all behaviors.

It seems to be pretty flexible but with behavior auto running after a
DOM update, I could see it getting pretty out of hand with performance
if lots of behaviors are used.


Here is the test/example page that adds three behaviors; an append,
click and addClass. I also remove the addClass behavior before doing
the last two appendTo and prependTo calls.

http://brandon.jquery.com/plugins/behavior/test/test.html

--
Brandon Aaron



On 4/26/07, John Resig <[EMAIL PROTECTED]> wrote:
>
> .behavior() does not exist - but it could (without too much effort)
> the current solution with jQuery is shown in the previous slide (which
> is, unfortunately, rather verbose). I hope that it'll exist one day -
> I probably should've made that more explicit.
>
> You would, "simply", have to override append/prepend/before/after and
> after the injection has occurred, re-run all "behavior"ed expressions.
> Of course, you'd also have to cache all expressions for future use
> (and that's another nut, entirely). If someone feels compelled, you
> can hack on it - otherwise, I may take a stab at it.
>
> --John
>
> On 4/26/07, Starbow <[EMAIL PROTECTED]> wrote:
> >
> > I was just watching the video of John Resig at Yahoo, and in one slide
> > he talked about behaviors, as jquery bindings that act like css rules
> > and apply themselves to html fragments asynchronously loaded into the
> > page.  The code sample looked like this:
> >
> > $(document).ready( function() {
> >   $('li").behavior( "click", function() {
> >     $(this).load("menu.html");
> >   });
> > });
> >
> > Is behavior a special jQuery function, something that is in the works,
> > or is it just a regular function and the code for it was missing from
> > the slide set?
> >
> >
>

Reply via email to