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:
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> </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".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>
Tentativi fatti con jquery sono:
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è?.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');});
Attualmente riesco a raggiungere il mio scopo aggiungendo l'evento click al body.
ma mi sembra una soluzione barbaracodice:$('#pippo').click(function(){alert('pluto');})
Per testare lo script uso:
Firefox 15.0.1
Geasemonkey 1.1
JQuery 1.8.1

Rispondi quotando