mirror of
https://github.com/jquery/jquery.git
synced 2026-02-06 17:24:54 -05:00
Fix #10544. Remove deprecated .data() event namespaced triggering.
Data events were horribly slow, never documented, and caused strange interpretation of data items with dots in them.
This commit is contained in:
28
src/data.js
28
src/data.js
@@ -232,7 +232,7 @@ jQuery.extend({
|
||||
|
||||
jQuery.fn.extend({
|
||||
data: function( key, value ) {
|
||||
var parts, part, attr, name, l,
|
||||
var attrs, name,
|
||||
elem = this[0],
|
||||
i = 0,
|
||||
data = null;
|
||||
@@ -243,9 +243,9 @@ jQuery.fn.extend({
|
||||
data = jQuery.data( elem );
|
||||
|
||||
if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {
|
||||
attr = elem.attributes;
|
||||
for ( l = attr.length; i < l; i++ ) {
|
||||
name = attr[i].name;
|
||||
attrs = elem.attributes;
|
||||
for ( ; i < attrs.length; i++ ) {
|
||||
name = attrs[i].name;
|
||||
|
||||
if ( !name.indexOf( "data-" ) ) {
|
||||
name = jQuery.camelCase( name.substring(5) );
|
||||
@@ -267,33 +267,15 @@ jQuery.fn.extend({
|
||||
});
|
||||
}
|
||||
|
||||
parts = key.split( ".", 2 );
|
||||
parts[1] = parts[1] ? "." + parts[1] : "";
|
||||
part = parts[1] + "!";
|
||||
|
||||
return jQuery.access( this, function( value ) {
|
||||
|
||||
if ( value === undefined ) {
|
||||
data = this.triggerHandler( "getData" + part, [ parts[0] ] );
|
||||
|
||||
// Try to fetch any internally stored data first
|
||||
if ( data === undefined && elem ) {
|
||||
data = jQuery.data( elem, key );
|
||||
data = dataAttr( elem, key, data );
|
||||
}
|
||||
|
||||
return data === undefined && parts[1] ?
|
||||
this.data( parts[0] ) :
|
||||
data;
|
||||
return elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null;
|
||||
}
|
||||
|
||||
parts[1] = value;
|
||||
this.each(function() {
|
||||
var self = jQuery( this );
|
||||
|
||||
self.triggerHandler( "setData" + part, parts );
|
||||
jQuery.data( this, key, value );
|
||||
self.triggerHandler( "changeData" + part, parts );
|
||||
});
|
||||
}, null, value, arguments.length > 1, null, false );
|
||||
},
|
||||
|
||||
10
src/event.js
10
src/event.js
@@ -195,14 +195,6 @@ 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, onlyHandlers ) {
|
||||
// Don't do events on text and comment nodes
|
||||
if ( elem && (elem.nodeType === 3 || elem.nodeType === 8) ) {
|
||||
@@ -232,7 +224,7 @@ jQuery.event = {
|
||||
namespaces.sort();
|
||||
}
|
||||
|
||||
if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) {
|
||||
if ( !elem && !jQuery.event.global[ type ] ) {
|
||||
// No jQuery handlers for this event type, and it can't have inline handlers
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user