Imagine this code:

$("a").click(function () { alert("hello world"); return false; });

$("button").click(function () { $("a").click(); });

I would expect that clicking on the button would trigger the click
event on the links element, but it is not the case because of the
following code in jQuery:

                        // Handle triggering native .onfoo handlers (and on 
links since we
don't call .click() for links)
                        if ( (!fn || (jQuery.nodeName(elem, 'a') && type == 
"click")) &&
elem["on"+type] && elem["on"+type].apply( elem, data ) === false )
                                val = false;

                        // some code in between these blocks

                        // Trigger the native events (except for clicks on 
links)
                        if ( fn && donative !== false && val !== false && 
!(jQuery.nodeName
(elem, 'a') && type == "click") ) {
                                this.triggered = true;
                                try {
                                        elem[ type ]();
                                // prevent IE from throwing an error for some 
hidden elements
                                } catch (e) {}
                        }


It is around line 2019 in jquery-1.2.6.js (the trigger function).

So my question is: why jQuery makes an exception with the <a>
elements? At least it should mention this in the docs. I spent quite
some time until I found this.

Best regards

Reply via email to