Trigger onclick handlers of links

This commit is contained in:
Brandon Aaron 2008-04-21 20:39:17 +00:00
parent a9fe9a2a5f
commit 5d033dba02
2 changed files with 10 additions and 3 deletions

View File

@ -203,8 +203,8 @@ jQuery.event = {
if ( jQuery.isFunction( jQuery.data(elem, "handle") ) ) if ( jQuery.isFunction( jQuery.data(elem, "handle") ) )
val = jQuery.data(elem, "handle").apply( elem, data ); val = jQuery.data(elem, "handle").apply( elem, data );
// Handle triggering native .onfoo handlers // Handle triggering native .onfoo handlers (and on links since we don't call .click() for links)
if ( !fn && elem["on"+type] && elem["on"+type].apply( elem, data ) === false ) if ( (!fn || (jQuery.nodeName(elem, 'a') && type == "click")) && elem["on"+type] && elem["on"+type].apply( elem, data ) === false )
val = false; val = false;
// Extra functions don't get the custom event object // Extra functions don't get the custom event object

View File

@ -113,7 +113,7 @@ test("bind(), namespaced events, cloned events", function() {
}); });
test("click()", function() { test("click()", function() {
expect(4); expect(5);
$('<li><a href="#">Change location</a></li>').prependTo('#firstUL').find('a').bind('click', function() { $('<li><a href="#">Change location</a></li>').prependTo('#firstUL').find('a').bind('click', function() {
var close = $('spanx', this); // same with $(this).find('span'); var close = $('spanx', this); // same with $(this).find('span');
ok( close.length == 0, "Context element does not exist, length must be zero" ); ok( close.length == 0, "Context element does not exist, length must be zero" );
@ -131,6 +131,13 @@ test("click()", function() {
}; };
$('#firstp').click(); $('#firstp').click();
ok( counter == 1, "Check that click, triggers onclick event handler also" ); ok( counter == 1, "Check that click, triggers onclick event handler also" );
var clickCounter = 0;
$('#simon1')[0].onclick = function(event) {
clickCounter++;
};
$('#simon1').click();
ok( clickCounter == 1, "Check that click, triggers onclick event handler on an a tag also" );
}); });
test("unbind(event)", function() { test("unbind(event)", function() {