Newsgroup: it.comp.lang.javascript
Titolo: onclick dinamico su IE : one another again?

temo proprio di chiedere una cosa risaputa su questo forum e chiedo
scusa fin d'ora.
ma non sono un porgrammatore esperto e sono giorni che rischio di
impazzire su uno script dinamico che non gira su IE, mentre funziona
bene in firefox e konqueror. guggolare sui gruppi non mi ha ancora
aiutato.
il peggio è che IE non produce nemmeno alcun output di debug.
mi sono autoconvinto che il problema risieda nell'attributo onclick
generato in modo dinamico con setAttribute, che viene accettato
sintatticamente, ma poi non risulta attivo su IE.
avevo già cominciato la discussione in questo topic sotto un altro
profilo:
http://groups.google.com/group/it.comp.lang.javascript/browse_thread/thread/2cb23200ab7e6e40#
ma ho deciso di aprire un topic nuovo perché stavo uscendo troppo ot.
questi sono due esempi del programma che sto scrivendo:
http://cloc3.dyndns.org/index.html/doku.php/playground/playground/versione1
http://cloc3.dyndns.org/index.html/doku.php/playground/playground/versione2
già che ci sono, vorrei un consiglio sulle reference preferibili per
programmare in JScript, in maniera da prevedere a priori le eventuali
incompatibilità con javascript. fino ad ora in fatti, mi sono sempre
riferito troppo sistematicamente ai 
developer.mozilla.org
 .
grazie, marco.

 scusa fin d'ora.
esatto:
http://groups.google.it/group/it.comp.lang.javascript/browse_thread/thread/b1cab77a26d95788/8beabb72d0e844d9?lnk=st&q=setAttribute+cristiano+onclick+group%3Ait.comp.lang.javascript&rnum=3&hl=it#8beabb72d0e844d9
-- 
"E' l' ignoranza che crea l'intolleranza
 di gente cieca e senza coscienza"
									  S.S.S.

 Oppure if(window.Opera) "format c:" e risolviamo a monte!
disgraziatamente, quella è una istruzione che a me non funziona in
locale... ^_^
in attesa di provare su una versione di IE, sto cercando di azzeccare
sintassi alternative accettabili per firefox.
ho provato a sostituire il mio:
foto.setAttribute('onclick','clic(
this.parentNode.id
)')
con
foto.onclick = clic(
this.parentNode.id
)
ma firefox si ribella. e sinceramente penso che abbia assolutamente
ragione.
quello che accade è che riesco sì a chiamare la funzione clic, ma il
parametro non viene chiamato correttamente.
infatti l'errore è:
this .parentNode has no properties
in questo modo, infatti, la funzione clic non viene eseguita
all'evento clic dell'utente, ma all'atto dell'assegnazione, quando non
ha nessun senso.
praticamente, non vedo via d'uscita. possibile che un programmino così
infantile debba risultare tanto difficile?


se voi passare dei parametri devi mettere
function click(el){
alert(
el.parentNode.id
);
}
 foto.onclick = function(){
clic(this)
}
puoi usare  anche una cosa del genere
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://
www.w3.org/TR/html4/loose.dtd
">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/JavaScript">
function _click(el){
	alert(
el.parentNode.id
);
}
window.onload= function(){
	var imgs= document.getElementsByTagName('img');
	for(var i=0;i<imgs.length;i++){
		imgs.item(i).onclick=function(){
			_click(this);
		}
	}
}
</script>
</head>
<body>
<div id="mio-1">
<img src="img.png"  width="50"  height="50" />
</div>
<div id="mio-2">
<img src="img.png"  width="50"  height="50" />
</div>
<div id="mio-3">
<img src="img.png"  width="50"  height="50" />
</div>
</body>
</html>
Ciao.


è strano. ieri sera, prima di postare, avevo provato una cosa tipo la
tua ma non girava.
forse l'ora tarda. adesso però ho una sintassi alternativa funzionante
su firefox.
mi manca solo un utente IE che la sperimenti :) .
grazie di tutto.

 grazie di tutto.
Ciao, ti avevo detto che avrei dato una controllatina appena avessi
avuto tempo e modo; ma poi mi č passato di mente (complice il fatto
che non hai risposto :P ).
Se mi passi il link con la versione aggiornata, ci butto un occhio.
-- 
~ Ci siamo fatti una scopata cosi' eccezionale che anche i vicini
hanno fumato una sigaretta.


ti ringrazio. sei gentilissimo.
la mia, però, era proprio una battuta di passaggio.
adesso il programma funziona e ho imparato una cosa importante.
amici che hanno provato il mio link li ho trovati nel giro di
ventiquattrore e ho fatto delle prove io stesso.
comunque, ti passo lo stesso il link, perché è un giochino matematico
divertente:
http://cloc3.dyndns.org/index.html/doku.php/macchia_e_smacchia
o, nella versione facilitata:
http://cloc3.dyndns.org/index.html/doku.php/playground/playground/versione1
la connessione adsl del server è un po' instabile. se piove la telecom
dorme :) .

 dorme :) .
Eeheh. :)
-- 
~ "Solo i morti hanno visto la fine della guerra."
(Platone)


questo mi piace proprio e lo copio subito perché non migliora il
codice, ma lo rende più leggibile.
in particolare, mi sorprende il modo di passare il valore corrente ad
Id, chiamando this all'interno della funzione.
scusa se mi spiego con le mia parole:
io mi aspetterei che this venisse riferito alla funzione clic stessa
(il che renderebbe il codice inutile) e non (come accade di fatto)
all'oggetto corrente associato alla proprietà onclic che a sua volta
ha chiamato la funzione clic.
è un po' un bambino che nasce con gli occhi azzurri del nonno, mentre
quelli dei genitori sono castani.
bella anche l'istruzione:
n = +Id
praticamente trasforma la variabile da formato testo a formato numero!