Salve
sto scrivendo uno script lato client e non riesco ad intercettare un evento click su un elemento HTML. la pagina incriminata ha un codice HTML di questo tipo:
codice:
<body id="pippo" class="flexible">
<div id="container">
<div id="locations">
<div id="position0" class="b">
<div id="position1" class="b">
<div id="js_Position1Img" class="ba"></div>
</div>
<div id="position2" class="b">
</div>
</div>
</body>
Cliccando su anchor id ="js_Position1Link", viene aggiunta alla pagina la parte di HTML che mi interessava. la pagina a questo punto è cosi:
codice:
<body id="pippo" class="flexible">
<div id="container">
<div id="locations">
<div id="position0" class="b">
<div id="position1" class="b">
<div id="js_Position1Img" class="ba"></div>
</div>
<div id="position2" class="b">
</div>
// HTML aggiunto in un secondo momento
<div id="pluto_c" class="t">
<div id="pluto" class="m">
<div class="mainContent">
<div id="tabSendPluto">
<div class="contentBox01h">
<div class="content ">
<ul class="c">
<li id="js_plutoBox321" class="plutoBox">
<a id="js_plutoLinkBox321" class="pluto_box_bg" href="index.php?view=pluto" onclick="ajaxHandlerCall(this.href);return false;">
<div class="boxContent">
<div id="js_plutoBoxC" >Pluto</div>
</div>
</a>
[/list]
</div>
</div>
</div>
</div>
</div>
</div>
// fine HTML aggiunto
</div>
</body>
Problema: io dovrei aggiungere evento click su anchor ID = "js_plutoLinkBox321", per modificare l'html che a sua volta viene aggiunto alla pagina con la chiamata "ajaxHandlerCall".
Tentativi fatti con jquery sono:
codice:
// evento click direttamente su anchor
$('#container').on('click','#js_plutoLinkBox321', function(){alert('pluto');});
// evento click su nodo parente
$('#container').on('click','li', function(){alert('pluto');});
// evento click su nodo figlio
$('#container').on('click','a div.boxContent', function(){alert('pluto');});
// evento click su tutti i div
$('#container').on('click','div', function(){alert('pluto');});
Nessuno dei precedenti eventi viene generato, ho provato ad attaccare il metodo .on() al body con $('#pippo') ma niente anche così. Cosa per me strana è che aggiungento l'evento su tutti i div, se clicco su un div esterno al mio anchor l'evento viene generato. Nei div interni all'anchor non viene generato nulla, perchè?.
Attualmente riesco a raggiungere il mio scopo aggiungendo l'evento click al body.
codice:
$('#pippo').click(function(){alert('pluto');})
ma mi sembra una soluzione barbara
Per testare lo script uso:
Firefox 15.0.1
Geasemonkey 1.1
JQuery 1.8.1