- La casella il cui click ha evocato il menu
- Le ccrdinate dell'evento che ha evocato il menu
- L'evento click sul menu.
Come fare?
Miei appunti liberi, senza pretesa di dire necessariamente sempre cose giuste o sensate, durante l'apprendimento e la pratica della programmazione
//funzione che crea il menu popup. Funzione è ciò che si vuole che accada quando si clicca sul Menu. function CreaMenu(evento,mouseSopra,mouseFuori,funzione){ var casellaCliccata=evento.srcElement; var coordinataX=evento.clientX; var coordinataY=evento.clientY Mnu=document.createElement("div"); Mnu.id="menu"; Mnu.onmouseover=mouseSopra; Mnu.onmouseout=mouseFuori; Mnu.className="Menu"; Mnu.innerHTML=TestoDelMenu; document.body.appendChild(Mnu); Mnu.style.left=evento.clientX+"px"; Mnu.style.top=evento.clientY+"px"; Mnu.onmousedown=function(){ document.body.removeChild(Mnu); funzione(event,casellaCliccata,coordinataX,coordinataY) }; }La funzione accetta come parametri l'evento che l'ha evocata, la funzione da eseguire al MouseOver, la funzione da eseguire al MouseOut, e la funzione da eseguire all'evento MouseDown sul menu.
function CreaMenu(evento,mouseSopra,mouseFuori){ Mnu=document.createElement("div"); Mnu.id="menu"; Mnu.onmouseover=mouseSopra; Mnu.onmouseout=mouseFuori; Mnu.className="Menu"; Mnu.innerHTML=TestoDelMenu; document.body.appendChild(Mnu); Mnu.style.left=event.clientX+"px"; Mnu.style.top=event.clientY+"px"; }Conviene passare alla funzione che crea il menu anche la casella che è stata cliccata.
//funzione che crea il menu popup. Funzione è ciò che si vuole che accada quando si clicca sul Menu. function CreaMenu(evento,mouseSopra,mouseFuori){ var casellaCliccata=evento.srcElement; var coordinataX=evento.clientX; var coordinataY=evento.clientY Mnu=document.createElement("div"); Mnu.id="menu"; Mnu.onmouseover=mouseSopra; Mnu.onmouseout=mouseFuori; Mnu.className="Menu"; Mnu.innerHTML=TestoDelMenu; document.body.appendChild(Mnu); Mnu.style.left=evento.clientX+"px"; Mnu.style.top=evento.clientY+"px"; Mnu.onmousedown=function(){ var menuCliccato=event.srcElement; casellaCliccata.innerHTML=menuCliccato.innerHTML; }; }