#4132 closed bug (invalid)
Data store hash object bug
Reported by: | dave_smith | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | 1.3.2 |
Component: | data | Version: | 1.3.1 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
The desired output of the following code is that a#other gives 'other' and the rest of the links give 'value'.
Instead, all links give 'other'.
If the same is done with a string instead of a hash object, then the desired output produced.
$(document).ready(function() {
Store a hash on all links. $('a').data('object_store', {prop: 'value'});
Get the stored hash from one of the links. var object_store = $('a#other').data('object_store');
Alter the hash. object_store.prop = 'other';
Store the hash in the one link. $('a#other').data('object_store', object_store);
$('a').click(function() { Display the output. alert($(this).data('object_store').prop); return false; });
});
Change History (2)
comment:1 Changed 14 years ago by
Resolution: | → invalid |
---|---|
Status: | new → closed |
comment:2 Changed 14 years ago by
Thanks dmethvin, your explanation and code examples are much appreciated.
All the elements are sharing the object that you initially set. I updated the documentation for
jQuery.data
to clarify this.http://docs.jquery.com/Core/data
If you want a subset of the objects to have a different value, you could use
jQuery.extend
to create a new object with updated values:Or if you want each element to have a unique object, do this: