#8150 - When removing the width and height attributes in IE6/7, setting to "" actually sets to 0 instead of auto
- Having fixed this automatically with the use of removeAttribute in browsers that support it, this will fix it for IE6/7 as well.
- This has no effect on width/height styles set elsewhere( test added to removeAttr )
- With this addition, I need to call attr in removeAttr for IE6/7, which means boolean calls like .attr("checked", "") will no longer remove the attribute, which I think is fine. .attr("checked", false) will still remove. If I had left it, it would have gone in an infinite loop since setting to empty string is the only way to remove it in these browsers.
- The hrefNormalized hooks were returning null if they weren't present. Added the null check to the getter.
- Now that the style support fails in IE8 as well due to uppercasing everything, no need to have style included with the hrefNormalized hooks
Dave Methvin [Fri, 8 Apr 2011 02:52:15 +0000 (22:52 -0400)]
Fixes #8722. Remove try/catch used by #3533 to fix the IE Table Colon Blow bug, and instead check for colon in the event name. Thanks to daguej for scoping this out -- a colonoscopy you might say.
Dave Methvin [Thu, 3 Feb 2011 02:57:44 +0000 (21:57 -0500)]
Create jQuery.holdReady(true/false) method to encapsulate jQuery.readyWait++ / jQuery.ready(true) logic. Fix problem where jQuery.ready may trigger twice, causing the (unsupported) document.onready to run twice. Fixes #8803 .
Rewrite of the support module. We use a temporary body element in order not to have to wait for the document to be ready for boxModel-related support tests.
Adds fn.promise as a mean to observe the completion of animations on a set of elements. Only queued animations are handled for now, non-queued animations support coming soon. Effects unit tests updated to test the feature (needs more testing though).
Dave Methvin [Wed, 16 Mar 2011 03:40:25 +0000 (23:40 -0400)]
Only bubble a triggered event if we have attached a jQuery handler, but check the current element for an inline handler regardless. Make some other size optimizations as well.
Dave Methvin [Fri, 11 Feb 2011 04:43:45 +0000 (23:43 -0500)]
Switch from recursion to iteration for event triggering. Move event-name namespace processing out of event handler, since it has to always go through trigger.
Found a problem removing the style attribute in IE
- Style is now a special case in IE6/7 to set cssText. My goal is to avoid calling attr again for the performance benefit, and at this point it would also cause an infinite loop for the boolean attributes hooks such as selected & checked. Nevertheless, style seems to be the only one requiring a special call.
#5413 - Much shorter solution for getting width/height in ie6
- #8255 Added support for the list attribute in browsers that support it (it is automatically readonly, but can be set if using getAttribute( name, 2)
timmywil [Fri, 25 Mar 2011 04:35:50 +0000 (00:35 -0400)]
Fix #7472 and added test for #3113
- Forms with an input that has either name="action" or name="some-other-attr-on-the-form" caused problems in IE6/7. This is fixed.
- Changed check in $.attr for ret === null to typeof ret === "object" to catch any inputs that are accidentally retrieved in IE6/7, since attributes cannot be set to objects and typeof null === "object"
timmywil [Sun, 13 Mar 2011 19:44:51 +0000 (15:44 -0400)]
Full test suite now passes in all browsers! There are probably some tweaks we can make to shorten and simplify.
- removeAttr now only uses setAttribute if camelCase setAttribute is not supported
+ Might want to rename jQuery.support.getSetAttribute
- tabIndex is a special case now for hooks where undefined should be returned.
+ Should we be checking if hooks returns undefined? undefined might be the desired return value in future hooks.
As of now, tabIndex is the only one that needs it, but the test suite will still pass if we don't check if hooks are undefined.
- The main difference is that this does not allow arbitrarily adding hooks to any collection of elements.
- Modularizes val into a set of easily maintainable and conditional hooks.
- valHooks is placed at jQuery.valHooks
+ This could technically be extended, but I do not see it being used except in very rare cases since you can only apply valHooks to nodeNames and input types, and not a collection of elements as before. We could theoretically privatize valHooks taking it off of jQuery and only use it internally for our own convenience, but again, I do not believe this patch carries with it the dangers of the first proposal.
- Slightly improved performance of val on radios and checkboxes for browsers that support checkOn, given the conditional attachment of its hook.