次のように、Dom 要素が初期化されるたびに発生するイベントが必要です。
HTML
<div id="container">
<div id="data">data!</div>
</div>
<div id="clickme">Click me!</div>
Javascript
$(function() {
var i = 0;
$('#clickme').click(function() {
$('#container').html('<div id="data">data '+i+'</div>');
i++;
});
// this event gets called only the first time #data element is ready
// I want it to be called each time #data comes into being
$('#data').ready(function() {
alert('element data ready!');
});
});
私はもう試した:
// doesn't work
$('#data').live('ready', function() {
alert('element data ready (live)');
});
編集: ajaxによって挿入された要素に対してそれを行うことに興味があります。例えば:
$.post('/myaction/', {
param: 'value'
},
function(data) {
$('#someContainer').replaceWith(data);
});
// this function operates on elements returned by the ajax call, so they are not available at this point.
myFunction();
// so I'd better call myFunction() when the ajax data is inserted
});
ここでフィドル:http://jsfiddle.net/nf8CP/