Fix #10791. SVG clamors for special treatment of its class names.

This commit is contained in:
Dave Methvin 2011-11-16 10:35:53 -05:00
parent 80797f5805
commit 780c59b89d
2 changed files with 26 additions and 1 deletions

View 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 ) {

View 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);