#9413 closed bug (fixed)
$.fn.removeData does not remove data with a dash in a name
Reported by: | sidonath | Owned by: | Rick Waldron |
---|---|---|---|
Priority: | blocker | Milestone: | 1.6.3 |
Component: | data | Version: | 1.6.1 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
Some of the backwards-compatibility issues with camelCasing data names were solved in #9124, but not all.
Here is a test case that demonstrates the issue.
Expectation:
$('#foo').removeData('foo-bar')
removes data with key "fooBar"
But actually:
$('#foo').removeData('foo-bar')
doesn't remove anything.
To remove the "fooBar" one has to explicitely call $('#foo').removeData('fooBar')
The current handling breaks old code ported to jQuery 1.6.1, but the release notes say that the upgrade should be seamless with respect to data changes in 1.6.0.
Solution: when removing "foo-bar", remove "fooBar" instead.
Workaround for developers: update code to use "fooBar" always.
Change History (16)
comment:1 Changed 12 years ago by
Component: | unfiled → data |
---|---|
Priority: | undecided → blocker |
Resolution: | → duplicate |
Status: | new → closed |
comment:3 Changed 12 years ago by
It is not a duplicate of #7328. The removeData is not working with a dash in the name.
comment:4 Changed 12 years ago by
Resolution: | duplicate |
---|---|
Status: | closed → reopened |
comment:5 Changed 12 years ago by
Owner: | set to Rick Waldron |
---|---|
Status: | reopened → assigned |
comment:8 Changed 12 years ago by
This is the only ticket that should exist for this issue. Please stop creating duplicates
comment:11 Changed 12 years ago by
Milestone: | 1.next → 1.7 |
---|
comment:13 Changed 12 years ago by
Milestone: | 1.7 → 1.6.3 |
---|
comment:15 Changed 12 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Merge pull request #455 from rwldrn/9413
Supports interoperable removal of hyphenated/camelCase properties. Fixes #9413
Changeset: 37254bab91b6e006716029c599bab06792015925
See: #9124 #7328 #9301