This was an intentional change. We changed the meaning of :visible to mean
"elements that aren't visible" (this includes elements that have a height
and width of 0 - and thus aren't visible to  the user). This resulted in a
massive speed-up.

We discussed this in the release notes:
http://docs.jquery.com/Release:jQuery_1.3.2

--John


On Thu, Mar 19, 2009 at 1:53 AM, howardr <[email protected]> wrote:

>
> I traced the error to how jQuery 1.3.2 changed the method
> Sizzle.selectors.filters.hidden
>
> Sizzle.selectors.filters.hidden = function(elem){
>        return elem.offsetWidth === 0 || elem.offsetHeight === 0;
> };
>
> which returns true even though your element is current visible, the
> previous method was
>
> Sizzle.selectors.filters.hidden = function(elem){
>        return "hidden" === elem.type ||
>                jQuery.css(elem, "display") === "none" ||
>                jQuery.css(elem, "visibility") === "hidden";
> };
>
> If you want a quick fix for 1.3.2, paste the following code anywhere
> after the normal jQuery code (this can be in the jQuery file or in a
> <script> tag just below your include)
>
> jQuery.find.selectors.filters.hidden = function(elem){
>        return "hidden" === elem.type ||
>                jQuery.css(elem, "display") === "none" ||
>                jQuery.css(elem, "visibility") === "hidden";
> };
>
>
> I will see what I can do about submitting a ticket to get this fixed
> for future revisiosn.
>
> --Howard Rauscher
>
> On Mar 16, 4:12 am, "yt.nash" <[email protected]> wrote:
> > Hi everybody,
> >
> > I am in the same situation of you! I have upgraded to jQuery 1.3.2.
> > and some hide() actions are not working fine!
> >
> > I have reproduced your behavior but for me is not necessary div
> > includes a float element inside. I just have a div with one label and
> > it is crashed.
> >
> > Is this "possible bug" reported in jQuery bug tracker?
> >
> > Thanks to all!
> >
> > Santi.
> >
> > On Mar 12, 9:16 pm, Rich Nurre <[email protected]> wrote:
> >
> > > Hi all,
> >
> > > I would like to say that I love jQuery, and really appreciate all the
> > > hard work that goes into it.  The web owes you!
> >
> > > I recently tried the 1.3.2 release and noticed that some hide()
> > > functionality seemed to change with this release.  This was occurring
> > > in firefox 3 when hiding a div containing a div that has the float
> > > style on it.  It starts to hide but will not hide completely, or
> > > doesn't hide at all.  With the same code, including 1.3.1 instead of
> > > 1.3.2, it works as expected.  It also works as expected in 1.3.2 if no
> > > speed is passed or if 0 is passed as the speed ( with hide() or hide
> > > (0) ).
> >
> > > This isn't a huge deal to me, but I figured it was worth mentioning in
> > > case it exposes any bigger problems.  I created a basic example, so
> > > you can see how it works.
> >
> > > Here is the example code:
> >
> > > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
> > > "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
> > > <html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en">
> > > <head>
> > >         <meta http-equiv="Content-Type" content="text/html;
> charset=utf-8">
> > >         <title>jQuery 1.3.2 Bug?</title>
> > >         <style type="text/css">
> > >                 .list {
> > >                         float: left;
> > >                         width: 236px;
> > >                         background-color: #EEE;
> > >                         border: 1px solid #DDD;
> > >                 }
> > >         </style>
> > >         <script src="jquery-1.3.2.min.js"
> type="text/javascript"></script>
> > >         <script type="text/javascript">
> > >                 $(document).ready(function(){
> > >                         $('#list1').live('mouseup', function(){
> > >                                 $('#list2').show('fast');
> > >                                 $('#list3').hide('fast');
> > >                         });
> > >                         $('#list2').live('mouseup', function(){
> > >                                 $('#list1').hide(1000);
> > >                                 $('#list3').show(2000);
> > >                         });
> > >                         $('#list3').live('mouseup', function(){
> > >                                 $('#list2,#list3').hide('fast');
> > >
> $('#list1').show('slow',function(){alert('test complete!');});
> > >                         });
> > >                 });
> > >         </script>
> > > </head>
> > > <body>
> > >         <div id="list1">
> > >                 <div class="list">div 1</div>
> > >         </div>
> > >         <div id="list2">
> > >                 <div class="list">div 2</div>
> > >         </div>
> > >         <div id="list3">
> > >                 <div class="list">div 3</div>
> > >         </div>
> > > </body>
> > > </html>
> >
> > > You will notice that if you change 1.3.2 to 1.3.1, or take out all
> > > speed parameters it will work normally.  I thought this was worth
> > > making a post.
> >
> > > Thanks again to the jQuery team and the whole jQuery community for all
> > > the excellent work and contributions!
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to