Bug Tracker

Changeset 5390

Show
Ignore:
Timestamp:
05/03/08 01:51:55 (8 months ago)
Author:
scott.gonzalez
Message:

core: Fixed #2605: .data() now accepts null as a value.

Location:
trunk/jquery
Files:
2 modified

Legend:

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

    r5389 r5390  
    466466        parts[1] = parts[1] ? "." + parts[1] : ""; 
    467467 
    468         if ( value == null ) { 
     468        if ( value === undefined ) { 
    469469            var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); 
    470470             
    471             if ( data == undefined && this.length ) 
     471            if ( data === undefined && this.length ) 
    472472                data = jQuery.data( this[0], key ); 
    473473 
    474             return data == null && parts[1] ? 
     474            return data === undefined && parts[1] ? 
    475475                this.data( parts[0] ) : 
    476476                data; 
  • trunk/jquery/test/unit/core.js

    r5389 r5390  
    14131413 
    14141414test(".data()", function() { 
    1415     expect(16); 
     1415    expect(18); 
    14161416    var div = $("#foo"); 
    14171417    ok( div.data("test") == undefined, "Check for no data exists" ); 
     
    14201420    div.data("test", "overwritten"); 
    14211421    ok( div.data("test") == "overwritten", "Check for overwritten data" ); 
    1422  
     1422    div.data("test", undefined); 
     1423    ok( div.data("test") == "overwritten", "Check that data wasn't removed"); 
     1424    div.data("test", null); 
     1425    ok( div.data("test") === null, "Check for null data"); 
     1426     
     1427    div.data("test", "overwritten"); 
    14231428    var hits = {test:0}, gets = {test:0}; 
    1424  
     1429     
    14251430    div 
    14261431        .bind("setData",function(e,key,value){ hits[key] += value; })