]> source.dussan.org Git - jquery.git/commitdiff
Fix #11309. Recognize hexadecimal in data attributes.
authorSindre Sorhus <sindresorhus@gmail.com>
Fri, 10 Feb 2012 01:25:43 +0000 (20:25 -0500)
committerDave Methvin <dave.methvin@gmail.com>
Fri, 10 Feb 2012 01:27:27 +0000 (20:27 -0500)
src/data.js
test/unit/data.js

index 26bef32af391726580f2e6c75b69dd3cb3720d82..017bd2efd7ea1bece14d7e100950b9e64e761d32 100644 (file)
@@ -333,7 +333,7 @@ function dataAttr( elem, key, data ) {
                                data = data === "true" ? true :
                                data === "false" ? false :
                                data === "null" ? null :
-                               jQuery.isNumeric( data ) ? parseFloat( data ) :
+                               jQuery.isNumeric( data ) ? +data :
                                        rbrace.test( data ) ? jQuery.parseJSON( data ) :
                                        data;
                        } catch( e ) {}
index 006e29e6a4fa6b4e0311f47ff6eeeedc10a1492d..7598ba8bed06967ab5d4a2fd35764dd88ff7f973 100644 (file)
@@ -298,7 +298,7 @@ test(".data(String) and .data(String, Object)", function() {
 });
 
 test("data-* attributes", function() {
-       expect(37);
+       expect(38);
        var div = jQuery("<div>"),
                child = jQuery("<div data-myobj='old data' data-ignored=\"DOM\" data-other='test'></div>"),
                dummy = jQuery("<div data-myobj='old data' data-ignored=\"DOM\" data-other='test'></div>");
@@ -356,6 +356,7 @@ test("data-* attributes", function() {
                .attr("data-five", "5")
                .attr("data-point", "5.5")
                .attr("data-pointe", "5.5E3")
+               .attr("data-hexadecimal", "0x42")
                .attr("data-pointbad", "5..5")
                .attr("data-pointbad2", "-.")
                .attr("data-badjson", "{123}")
@@ -370,6 +371,7 @@ test("data-* attributes", function() {
        strictEqual( child.data("five"), 5, "Primitive number read from attribute");
        strictEqual( child.data("point"), 5.5, "Primitive number read from attribute");
        strictEqual( child.data("pointe"), 5500, "Primitive number read from attribute");
+       strictEqual( child.data("hexadecimal"), 66, "Hexadecimal number read from attribute");
        strictEqual( child.data("pointbad"), "5..5", "Bad number read from attribute");
        strictEqual( child.data("pointbad2"), "-.", "Bad number read from attribute");
        strictEqual( child.data("badjson"), "{123}", "Bad number read from attribute");