Visualizzazione risultati 1 fino 5 di 5

Discussione: [JS]Come gestire gli eventi a cascata

  1. #1
    Guest

    Exclamation [JS]Come gestire gli eventi a cascata

    Salve a tutti, avrei bisogno di gestire due eventi a cascata, in particolare devo gestire la pressione di un tasto della tastiere e in contemporanea la pressione di un tasto del mouse, in pratica se io premo per esempio A sulla tastiere a poi clicco su un elemento della pagina con il mouse lo script esegue un'operazione, qualcuno sa come si può fare?

    grazie

  2. #2
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Potresti provare così:
    - utilizza una variabile booleana di supporto
    - imposta sul BODY i gestori di evento onKeyDown e onKeyUp, con i quali imposterai la variabile a seconda che il tasto venga premuto (down) o rilasciato (up)
    - sull'elemento che ti interessa, imposta il gestore di evento onClick, che reagirà al click del mouse... ma solo se la variabile di supporto ti è favorevole.

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  3. #3
    Guest

    Predefinito

    Questo è quello che ne è venuto fuori, grazie per la dritta, posto il codice per chi ne avesse bisogno in futuro

    Codice HTML:
    <html>
    
     <head>
      <script language="JavaScript" type="text/javascript">
       //Variabile di pressione tasto
       var set_a = 0;
    
       //Se viene premuto un tasto
       function premuto(e)
    	{
    	 var code;
    	 if (!e) 
             var e = window.event;
    	 if (e.keyCode) 
             code = e.keyCode;
    	 else if (e.which) 
             code = e.which;
    	 if(code == 65)  //Se il tasto premuto è a
    	 set_a = 1;        //Setto la variabile  set_a
    	}
    
       //Se viene rilasciato un tasto
       function rilasciato(e)
    	{
    	 var code;
    	 if (!e) 
             var e = window.event;
    	 if (e.keyCode) 
             code = e.keyCode;
    	 else if (e.which) 
             code = e.which;
    	 if(code == 65)    //Se il tasto rilasciato è a
    	 set_a = 0;         //Resetto la variabile  set_a
    	}
    
       //Alla pressione del tasto sinistro del mouse
       function mouse(dxx)
    	{
    	 if(set_a == 1)     //Verifico che sia premuto il tasto a
    	 dxx.innerHTML = "Mouse+a";
    	}
    
    
      </script>
     </head>
    
     <body OnKeyDown="premuto(event)" OnKeyUp="rilasciato(event)" >
      <table border="1">
       <tr>
        <td id="1" style="width:20;" OnClick="mouse(this)">
         &nbsp;
        </td> 
        <td id="2" style="width:20;" OnClick="mouse(this)">
         &nbsp;
        </td>
        <td id="3" style="width:20;" OnClick="mouse(this)">
         &nbsp;
        </td>
       </tr>
      </table>
     </body>
    <html>
    Ho un altra domanda però, è possibile vedere se è stato premuto un tasto direttamente dentro un altra funzione? o meglio io ho due frame, mi servirebbe sapere quando c'è un tasto della tastiera premuto per bloccare l'esecuzione di una parte di codice, io ho provato a mettere:
    Codice:
    if(parent.nomeframe.set_a == 0)
     {
      Istruzioni da eseguire
     }
    Ma ho notato che la variabile rimane sempre a 0
    Ultima modifica di toolpirateswar : 09-04-2009 alle ore 20.47.58

  4. #4
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Le variabili JavaScript sono visibili solo dalla pagina che le richiama.

    Puoi sfruttare gli oggetti della pagina, creando dei campi hidden nella pagina e utilizzandoli come fossero variabili condivise. Poi ti riferirai a questi con il tradizionale document.getElementById('...').value = ...;

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  5. #5
    Guest

    Predefinito

    Grazie mille, ci sono riuscito

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •