load() sui div non funziona. load funziona solo sull'oggetto window e su tutti gli elementi con un src. Per tutto il resto c'è .ready()
Poi secondo me è sbagliato iniettare javascript come hai detto tu.
per rispondere alla tua prima domanda considera questo esempio magari guardando i log dalla console di firebug
codice:
<body>
CREA DIV
<div id="container"></div>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#container').on('click', '#dynamic > a', function () {
console.log('click su link dinamico');
});
$('body > a').click(function (e) {
$('<div id="dynamic">dynamic content click
</div>').appendTo('#container').ready(function () {
console.log('div creato');
$('img', this).on('load', function () {
console.log('imMagine caricata');
});
});
});
});
</script>
</body>
1. con on() ho agganciato l'handler del click partendo da un elemento gia esistente e filtrando con il selettore passato con il secondo parametro.
2. La stessa tecnica non la posso usare con 'ready' perchè per ogni elemento gia esistente l'evento si scatena una sola volta sicuramente prima che ogni div dinamico venga creato. Per questo l'handler lo aggancio una volta attaccato il div al dom.
3. L'evento load riguarda un elemento come img che possiede l'attribbuto src e non il div! lo aggancio all'immagine da DENTRO al ready del div.
cerca di adattare questo codice piuttosto di iniettare javascript che poi diventa impossibile da manuntenere e debuggare. tieni conto che
$('body > a').click(function (e) {
è solo un esempio, puo tranquillamente essere il success di una chiamata ajax...