Skip to content
Permalink
Browse files
Fix #10701, .preventDefault if an inline handler returns false.
Baby unicorns are slapped each time you use inline handlers, so do it sparingly.
  • Loading branch information
dmethvin committed Nov 7, 2011
1 parent 1e677f3 commit 90c907e
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 2 deletions.
@@ -343,9 +343,10 @@ jQuery.event = {
if ( handle ) {
handle.apply( cur, data );
}
// Note that this is a bare JS function and not a jQuery handler
handle = ontype && cur[ ontype ];
if ( handle && jQuery.acceptData( cur ) ) {
handle.apply( cur, data );
if ( handle && jQuery.acceptData( cur ) && handle.apply( cur, data ) === false ) {
event.preventDefault();
}

if ( event.isPropagationStopped() ) {
@@ -2273,6 +2273,18 @@ test("Non DOM element events", function() {
jQuery(o).trigger("nonelementobj");
});

test("inline handler returning false stops default", function() {
expect(1);

var markup = jQuery('<div><a href="#" onclick="return false">x</a></div>');
markup.click(function(e) {
ok( e.isDefaultPrevented(), "inline handler prevented default");
return false;
});
markup.find("a").click();
markup.off("click");
});

test("window resize", function() {
expect(2);

0 comments on commit 90c907e

Please sign in to comment.