} else if ( !event.isDefaultPrevented() ) {
var target = event.target, old,
- isClick = jQuery.nodeName(target, "a") && type === "click";
+ isClick = jQuery.nodeName(target, "a") && type === "click",
+ special = jQuery.event.special[ type ] || {};
+
+ if ( (!special._default || special._default.call( elem, event ) === false) &&
+ !isClick && !(target && target.nodeName && jQuery.noData[target.nodeName.toLowerCase()]) ) {
- if ( !isClick && !(target && target.nodeName && jQuery.noData[target.nodeName.toLowerCase()]) ) {
try {
if ( target[ type ] ) {
// Make sure that we don't accidentally re-trigger the onFOO events
});
test("bind(), namespace with special add", function() {
- expect(9);
+ expect(18);
var div = jQuery("<div/>").bind("test", function(e) {
ok( true, "Test event fired." );
var i = 0;
jQuery.event.special.test = {
+ _default: function(e) {
+ equals( this, document, "Make sure we're at the top of the chain." );
+ equals( e.type, "test", "And that we're still dealing with a test event." );
+ equals( e.target, div[0], "And that the target is correct." );
+ },
setup: function(){},
teardown: function(){},
add: function( handler, data, namespaces ) {