- 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;
};
}