Allow specific custom events to exit trigger early if there are no handlers bound for that type.
This commit is contained in:
parent
bbd9c776ea
commit
2f11ba7c98
1 changed files with 15 additions and 2 deletions
13
src/event.js
13
src/event.js
|
@ -277,6 +277,14 @@ jQuery.event = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// Events that are safe to short-circuit if no handlers are attached.
|
||||||
|
// Native DOM events should not be added, they may have inline handlers.
|
||||||
|
customEvent: {
|
||||||
|
"getData": true,
|
||||||
|
"setData": true,
|
||||||
|
"changeData": true
|
||||||
|
},
|
||||||
|
|
||||||
trigger: function( event, data, elem ) {
|
trigger: function( event, data, elem ) {
|
||||||
// Event object or event type
|
// Event object or event type
|
||||||
var type = event.type || event,
|
var type = event.type || event,
|
||||||
|
@ -306,6 +314,11 @@ jQuery.event = {
|
||||||
event.namespace = namespaces.join(".");
|
event.namespace = namespaces.join(".");
|
||||||
event.namespace_re = new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)");
|
event.namespace_re = new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)");
|
||||||
|
|
||||||
|
if ( jQuery.event.customEvent[ type ] && !jQuery.event.global[ type ] ) {
|
||||||
|
// No jQuery handlers for this event type, and it can't have inline handlers
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Handle a global trigger
|
// Handle a global trigger
|
||||||
if ( !elem ) {
|
if ( !elem ) {
|
||||||
// Don't bubble custom events when global (to avoid too much overhead)
|
// Don't bubble custom events when global (to avoid too much overhead)
|
||||||
|
|
Loading…
Add table
Reference in a new issue