On 8/14/07, Joel Birch <[EMAIL PROTECTED]> wrote:
>
>
>
> On 8/14/07, Eridius <[EMAIL PROTECTED]> wrote:
> >
> >
> > is there anything wring with that code(i don't care about use
> > mouseover()
> > instead of bind() because i did to test things)?
> >
> >
> It seems to work fine for me, although I would use hover() in order to
> eliminate the buggy behaviour of mouseout firing sometimes when you hover
> over the child a element. Also, you don't need to wrap self in a new object,
> or even have that variable at all. Here is my optimisation:
>
> jQuery.fn.hover_menu = function(offset, speed){
>    this.children('li').each(function(){
>        var $$ = $(this); //only create this once and use many times
>
>        //I'm not familiar with parseFloat, didn't know you could pass in
> two parameters. Also not sure if you need it here.
>        var current_margin = parseFloat($$.css('margin-left'), 10);
>        var new_margin = parseFloat(current_margin + offset, 10);
>
>        $$.hover(
>            function(){ $$.animate({paddingLeft: new_margin}, speed);},
>            function(){ $$.animate({paddingLeft: current_margin}, speed););
>        );
>    });
> };
>
> Untested.
> Joel Birch
>

Once again I should have checked it properly before sending. I have a );
where I should have a } in the hover function.


jQuery.fn.hover_menu = function(offset, speed){
   this.children('li').each(function(){
       var $$ = $(this); //only create this once and use many times

       //I'm not familiar with parseFloat, didn't know you could pass in two
parameters. Also not sure if you need it here.
       var current_margin = parseFloat($$.css('margin-left'), 10);
       var new_margin = parseFloat(current_margin + offset, 10);

       $$.hover(
           function(){ $$.animate({paddingLeft: new_margin}, speed);},
           function(){ $$.animate({paddingLeft: current_margin}, speed);}
       );
   });
};

Reply via email to