Landed cross-browser support for tabIndex, by Scott, closes ticket #3649.
[jquery.git] / src / core.js
index 8c4c09b..d779061 100644 (file)
@@ -1,36 +1,23 @@
-/*
- * jQuery @VERSION - New Wave Javascript
- *
- * Copyright (c) 2008 John Resig (jquery.com)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * $Date$
- * $Rev$
- */
-
-// Will speed up references to window, and allows munging its name.
-var window = this;
-
-// Map over jQuery in case of overwrite
-var _jQuery = window.jQuery,
-// Map over the $ in case of overwrite
-       _$ = window.$;
-
-var jQuery = window.jQuery = window.$ = function( selector, context ) {
-       // The jQuery object is actually just the init constructor 'enhanced'
-       return new jQuery.fn.init( selector, context );
-};
-
-// A simple way to check for HTML strings or ID strings
-// (both of which we optimize for)
-var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,
-
-// Is it a simple selector
-       isSimple = /^.[^:#\[\.,]*$/,
+var 
+       // Will speed up references to window, and allows munging its name.
+       window = this,
+       // Will speed up references to undefined, and allows munging its name.
+       undefined,
+       // Map over jQuery in case of overwrite
+       _jQuery = window.jQuery,
+       // Map over the $ in case of overwrite
+       _$ = window.$,
+
+       jQuery = window.jQuery = window.$ = function( selector, context ) {
+               // The jQuery object is actually just the init constructor 'enhanced'
+               return new jQuery.fn.init( selector, context );
+       },
 
-// Will speed up references to undefined, and allows munging its name.
-       undefined;
+       // A simple way to check for HTML strings or ID strings
+       // (both of which we optimize for)
+       quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,
+       // Is it a simple selector
+       isSimple = /^.[^:#\[\.,]*$/;
 
 jQuery.fn = jQuery.prototype = {
        init: function( selector, context ) {
@@ -825,7 +812,7 @@ jQuery.extend({
                // If a single string is passed in and it's a single tag
                // just do a createElement and skip the rest
                if ( !fragment && elems.length === 1 && typeof elems[0] === "string" ) {
-                       var match = /^<(\w+)\/?>$/.exec(elems[0]);
+                       var match = /^<(\w+)\s*\/?>$/.exec(elems[0]);
                        if ( match )
                                return [ context.createElement( match[1] ) ];
                }
@@ -983,6 +970,13 @@ jQuery.extend({
                                if( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) )
                                        return elem.getAttributeNode( name ).nodeValue;
 
+                               // elem.tabindex doesn't always return the correct value
+                               // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+                               if ( name == jQuery.props.tabindex ) {
+                                       var attributeNode = elem.getAttributeNode(jQuery.props.tabindex);
+                                       return attributeNode && attributeNode.specified && attributeNode.value || undefined;
+                               }
+
                                return elem[ name ];
                        }