別の関数からそのデータにアクセスしようとするまで、正常に動作しているように見えるリスト要素にjavascriptオブジェクトを格納しようとしています。
これが私のjsfiddleです:http://jsfiddle.net/RaUxB/2/
これが私のJavaScriptです:
var showData = function (li) {
// get the stored data
var d = $.data(li, 'testData');
if (typeof(d) === 'undefined')
alert ('showData() - data is undefined!');
else
alert ('showData() - number: [' + d.number+ '], text: [' + d.text + ']');
};
var doStuff = function () {
$('#list').children().each(function(ix, item) {
showData(item);
});
};
$(document).ready(function() {
// create a list item
var li = $('<li>List Item 1 - Click Me!</li>').appendTo('#list');
// store some data in it
$.data(li, 'testData', {number:1, text:'test 1'});
// show the data - this works!!!
showData(li);
// assign a click handler that will also show the data
$(li).click(function() {
showData(this); // this doesn't work!!!
});
});
ここに私のHTMLがあります:
<ul id="list"></ul>
<p><a href="#" onclick="javascript:doStuff();return(false);">Try This Way</a></p>
</p>