Provide a way to simulate default browser actions. Fixes #5973.
This commit is contained in:
parent
31f1e99500
commit
0252b78201
2 changed files with 11 additions and 3 deletions
|
@ -333,9 +333,12 @@ jQuery.event = {
|
|||
|
||||
} 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
|
||||
|
|
|
@ -72,7 +72,7 @@ test("bind(), multiple events at once and namespaces", function() {
|
|||
});
|
||||
|
||||
test("bind(), namespace with special add", function() {
|
||||
expect(9);
|
||||
expect(18);
|
||||
|
||||
var div = jQuery("<div/>").bind("test", function(e) {
|
||||
ok( true, "Test event fired." );
|
||||
|
@ -81,6 +81,11 @@ test("bind(), namespace with special add", function() {
|
|||
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 ) {
|
||||
|
|
Loading…
Reference in a new issue