git.asbjorn.biz
/
jquery.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
31f1e99
)
Provide a way to simulate default browser actions. Fixes #5973.
author
jeresig
<jeresig@gmail.com>
Thu, 28 Jan 2010 19:34:09 +0000
(14:34 -0500)
committer
jeresig
<jeresig@gmail.com>
Thu, 28 Jan 2010 19:34:09 +0000
(14:34 -0500)
src/event.js
patch
|
blob
|
history
test/unit/event.js
patch
|
blob
|
history
diff --git
a/src/event.js
b/src/event.js
index
53ef72c
..
602332f
100644
(file)
--- a/
src/event.js
+++ b/
src/event.js
@@
-333,9
+333,12
@@
jQuery.event = {
} else if ( !event.isDefaultPrevented() ) {
var target = event.target, old,
} 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
try {
if ( target[ type ] ) {
// Make sure that we don't accidentally re-trigger the onFOO events
diff --git
a/test/unit/event.js
b/test/unit/event.js
index
824707f
..
b0cc502
100644
(file)
--- a/
test/unit/event.js
+++ b/
test/unit/event.js
@@
-72,7
+72,7
@@
test("bind(), multiple events at once and namespaces", function() {
});
test("bind(), namespace with special add", 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." );
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 = {
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 ) {
setup: function(){},
teardown: function(){},
add: function( handler, data, namespaces ) {