JavascriptProva

domenica 19 maggio 2013

Ricostruendo la funzione che crea i menu

Bene.
Ho troncato il programma.

Adesso devo creare una funzione che mi crei un menu.

Ho la posizione del mouse.
Ma la passo ugualmente come parametro.
Ecco la funzione finora:
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.
Passando l'evento, si passano sia le coordinate sia la casella.
Dunque la funzione che crea il menu conosce sia le coordinate sia l'elemento bersaglio dell'evento.


Ecco come ho ricostruito la funzione finora:
//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;
 };
}

2 commenti:

  1. e quindi si porrà la funzione che si vuole eseguire al click del menu separatamente, passando il suo nome come parametro.

    RispondiElimina
  2. Dunque questa funzione creatrice di menu accetta come parametri:
    L'evento che apre il menu, dal quale ricostruisce l'elemento il cui click ha chiamato la funzione e le sue coordinate;
    La funzione da eseguire al passaggio del mouse sopra il menu;
    La funzione da eseguire all'uscita del mouse dal menu;
    Al click del menu ottiene l'evento da cui ricava l'elemento menu che è stato cliccato.

    Vi aggiungeremo la funzione da eseguire al click del menu, passata come parametro.

    RispondiElimina