Bug Tracker

Changeset 4611 for trunk/jquery/src

Show
Ignore:
Timestamp:
02/03/08 18:43:04 (1 year ago)
Author:
jeresig
Message:

You can now overwrite values returned from .data() with .bind("getData") - returning a value will override any bound value on that element.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/jquery/src/core.js

    r4606 r4611  
    481481    data: function( key, value ){ 
    482482        var parts = key.split("."); 
     483        parts[1] = parts[1] ? "." + parts[1] : ""; 
    483484 
    484485        if ( value == null ) { 
    485             if ( this.length ) { 
    486                 var data = jQuery.data( this[0], key ); 
    487                 return data == null ? 
    488                     jQuery.data( this[0], parts[0] ) : 
    489                     data; 
    490             } 
     486            var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); 
     487             
     488            if ( data == undefined && this.length ) 
     489                data = jQuery.data( this[0], key ); 
     490 
     491            return data == null && parts[1] ? 
     492                this.data( parts[0] ) : 
     493                data; 
    491494        } else 
    492             return this.trigger("setData" + (parts[1] ? "." + parts[1] : "") + "!", [parts[0], value]).each(function(){ 
     495            return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function(){ 
    493496                jQuery.data( this, key, value ); 
    494497            });