]> source.dussan.org Git - jquery.git/commitdiff
Fix #10791. SVG clamors for special treatment of its class names.
authorDave Methvin <dave.methvin@gmail.com>
Wed, 16 Nov 2011 15:35:53 +0000 (10:35 -0500)
committerDave Methvin <dave.methvin@gmail.com>
Wed, 16 Nov 2011 15:35:53 +0000 (10:35 -0500)
src/event.js
test/unit/event.js

index c6a711882f281437c217788dc41ae24745572936..57fe00cbe89759edfe29dc7e579d6af536a19320 100644 (file)
@@ -21,7 +21,7 @@ var rformElems = /^(?:textarea|input|select)$/i,
                return (
                        (!m[1] || elem.nodeName.toLowerCase() === m[1]) &&
                        (!m[2] || elem.id === m[2]) &&
-                       (!m[3] || m[3].test( elem.className ))
+                       (!m[3] || m[3].test( ((elem.attributes || {})[ "class" ] || {}).value ))
                );
        },
        hoverHack = function( events ) {
index c207d02898b4d1e6ca10f31d61aa0efcef579bcc..eb5f98fb8409d08f7dedb255c21a210dca22502c 100644 (file)
@@ -1184,6 +1184,31 @@ test(".trigger() doesn't bubble load event (#10717)", function() {
        jQuery( window ).off( "load" );
 });
 
+test("Delegated events in SVG (#10791)", function() {
+       expect(2);
+
+       var svg = jQuery(
+                       '<svg height="1" version="1.1" width="1" xmlns="http://www.w3.org/2000/svg">'+
+                       '<rect class="svg-by-class" x="10" y="20" width="100" height="60" r="10" rx="10" ry="10"></rect>'+
+                       '<rect id="svg-by-id" x="10" y="20" width="100" height="60" r="10" rx="10" ry="10"></rect>'+
+                       '</svg>'
+               ).appendTo( "body" );
+       
+       jQuery( "body" )
+               .on( "click", "#svg-by-id", function() {
+                       ok( true, "delegated id selector" );
+               })
+               .on( "click", ".svg-by-class", function() {
+                       ok( true, "delegated class selector" );
+               })
+               .find( "#svg-by-id, .svg-by-class" )
+                       .trigger( "click" )
+               .end()
+               .off( "click" );
+
+       svg.remove();
+});
+
 test("jQuery.Event( type, props )", function() {
 
        expect(5);