Newsgroup: it.comp.lang.javascript
Titolo: onClick che richiede doppio click

Mi capita spesso di aver a che fare con eventi onClick che
non vanno subito ma al secondo tentativo.
Sembrano "duri di comprendonio".
Cioč non si accorgono che sono stati cliccati la prima volta.
Con <INPUT> ,ad esempio, non succede, ma solo con elementi "non cliccabili
naturalmente"
come <IMG>, <DIV>, <SPAN>, ecc.
Beccatevi sta pagina e provatela (con IE)
************************ Inizio Pagina******************
<HTML><HEAD>
<TITLE>Ciao vecchio mio!!!</TITLE>
<SCRIPT Language=Javascript>
var i = new Array(0, 0);
function active(n)
{
if (i[n]==0)
 {
 eval("window.tab" + n.toString() + ".style.display='block'");
 eval("window.tab" + Math.abs(n-1).toString() + ".style.display='none'");
 i[n]++;
 }
else
 {
 eval("window.tab" + Math.abs(n-1).toString() + ".style.display='none'");
 i[n]=0;
 };
};
</SCRIPT>
<STYLE>
.mbar-na {color:"LightGrey";text-align:"center";font-size:14;cursor:hand}
.mbar-ac
{color:"#F0E68C";text-align:"center";font-size:14;font-weight:bold;cursor:ha
nd}
</STYLE>
</HEAD>
<BODY>
<DIV Style="position:absolute;left=0;top=0">
<TABLE width="600" height="30" Border=0>
<TR BgColor=Gray>
 <TD width="300">&nbsp;</TD>
 <TD width="80" ID=mb0 onclick="javascript:active(0)" class="mbar-na"
onmouseover="window.mb0.className='mbar-ac'"
onmouseout="window.mb0.className='mbar-na'">Menu #1</TD>
 <TD width="80" ID=mb1 onclick="javascript:active(1)" class="mbar-na"
onmouseover="window.mb1.className='mbar-ac'"
onmouseout="window.mb1.className='mbar-na'">Menu #2</TD>
 <TD width="180">&nbsp;</TD>
</TR>
</TABLE>
</DIV>
<DIV ID=tab0
Style="width=80;height=150;position:absolute;top=32;left=270;display:none;ba
ckground-color='#a0a0a0'">
<TABLE Border=0 width="100%" Height="100%">
<TR><TD>
<A HRef="mailto:
w....@bigfoot.com
?SUBJECT=Prova">Posta</A>
<BR><HR>Hello
</TD></TR></TABLE>
</DIV>
<DIV ID=tab1
Style="width=80;height=150;position:absolute;top=32;left=358;display:none;ba
ckground-color='#a0a0a0'">
<TABLE Border=0 width="100%" Height="100%">
<TR><TD>
<A HRef="mailto:
wb...@libero.it
?SUBJECT=Prova">Posta Libero</A>
<BR><HR>Ciao Belli
</TD></TR></TABLE>
</DIV>
</BODY></HTML>
*********************** Fine Pagina *********************
Ecco, come potete vedere se cliccate la prima volta su uno dei menu, tutto
OK.
Ora se cliccate sull'altro non si apre subito il secondo, ma scompare solo
il primo.
Cliccando un'altra volta, poi, appare normalmente anche il secondo.
Dato che mi succede anche in un treemenu, la cosa non č bella e mi
piacerebbe eliminarla
Grazie, ciao a tutti!!
Walker Boh

 Cioè non si accorgono che sono stati cliccati la prima volta.
Succede anche a me:
un click su un immagine dovrebbe far materializzare un'altra immagine in un
altro punto della pagina (in pratica, attiva una funzione che verifica la
visibilità e se risulta hidden la fa diventare visible), ma di fatto bisogna
cliccarci due volte! :-(
Walker teniamoci in contatto!
mago


In questo caso specifico in cui si era presentato (che non era quello
postato nel post precedente, quello era solo un caso analogo,
che però non è risolto :-) ) il problema, la cosa si è risolta in
modo piuttosto inspiegabile, provo a spiegarmi in breve:
ho un <DIV onclick="javascript:Funz()">
con all'interno varie <IMG ID=i"numero">, cioè con l'ID che comincia per "i"
seguito da
un numero per indicizzare il tutto e per riferirsi ad altre cose.
Poi ho la Funz() che è
function Funz()
{
    if (window.event.srcElement.tagName == "IMG" &&
window.event.srcElement.id.slice(0,1)=="i")
        [..... codice ....]
};
Così va.
Prima nella condition dell'if avevo messo solo la prima parte,
poi in seguito ho aggiunto anche altre immagini nel <DIV>, allora dovevo
distinguere le immagini da cliccare e quelle no.
E prima avevo bisogno la prima volta di cliccare 2 volte, poi bastava 1.
Se vuoi ti mando tutto via mail.
E se vuoi mandami tu la cosa che ti dà problemi,
che provo a guardarci.
Ciao Mago!!
Walker Boh

