From 8d1efee3167deedd33bf7f6001823706659704ea Mon Sep 17 00:00:00 2001 From: John Resig Date: Fri, 4 Dec 2009 23:18:05 -0500 Subject: [PATCH] Retooled the native triggering code, simplifying it. --- src/event.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/event.js b/src/event.js index acf363b67..3e673d6b9 100644 --- a/src/event.js +++ b/src/event.js @@ -257,18 +257,20 @@ jQuery.event = { nativeHandler = elem[ "on" + type ]; // prevent IE from throwing an error for some elements with some event types, see #3533 } catch (e) {} - // Handle triggering native .onfoo handlers (and on links since we don't call .click() for links) - if ( (!nativeFn || (jQuery.nodeName(elem, 'a') && type === "click")) && nativeHandler && nativeHandler.apply( elem, data ) === false ) { - event.result = false; - } + + var isClick = jQuery.nodeName(elem, "a") && type === "click"; // Trigger the native events (except for clicks on links) - if ( !bubbling && nativeFn && !event.isDefaultPrevented() && !(jQuery.nodeName(elem, 'a') && type === "click") ) { + if ( !bubbling && nativeFn && !event.isDefaultPrevented() && !isClick ) { this.triggered = true; try { nativeFn(); // prevent IE from throwing an error for some hidden elements } catch (e) {} + + // Handle triggering native .onfoo handlers + } else if ( nativeHandler && nativeHandler.apply( elem, data ) === false ) { + event.result = false; } this.triggered = false;