Visualizzazione risultati 1 fino 7 di 7

Discussione: Tasto sinistro o destro?

  1. #1
    Guest

    Predefinito Tasto sinistro o destro?

    Ciau a tutti... come faccio a capire se è stato pressato il tasto sinistro o destro del mouse???
    Cioè io ho questo:

    Codice:
    <input type='button' onmouseup=' check();'>

    Come faccio a capire quale dei due è stato pressato???

  2. #2
    Guest

    Predefinito

    si, scusa, comuqnue allora devi usare due eventi diversi:

    per il tasto destro:
    Codice:
    function check(){
       if(event.button == 2){
            alert("Premuto il tasto destro del mouse");
    }
    }
    mentre per il sinistro basta usare onclick

  3. #3
    Guest

    Predefinito

    Non funge

    Ti spiego in dettaglio cosa devo fare:

    Allora io ho un bottone e ogni volta che ci si clicca sopra col tasto sinistro del mouse deve aumentare una variabile di uno. Prima avevo usato l'evento onclick..solo che ho notato che se tu premi il tasto INVIO e come se tenessi premuto il tasto del mouse e clicks salgono a dismisura...per questo motivo ho inserito l'evento onmouseup...così si attiva solo al rilascio del mouse inibendo l'utilità del tasto INVIO...tuttavia ho notato che anche rilasciando il tasto destro aumentano i click....per questo motivo vorrei che aumentasse soltanto quando si preme il tasto sinistro...Ho provato come dici tu però non funge...magari ho sbagliato a inserirlo...di seguito ti illustro il codice.

    Pagina html (solo la parte interessata)
    Codice:
    <input type="button" class='big' value="Cliccami!!" onmouseup="aumenta();">

    Codice javascript:
    Codice:
    function aumenta()
      { 
       if(event.button != 2)
        {
            count++;
            document.getElementById('p').innerHTML= count;
          }
       }
    Ho sbagliato qualcosa? T.T

  4. #4
    Guest

    Predefinito

    scusa, ho sbagliato io prima, prova a usare questo script (non va nella funzione però)
    Codice:
    var messaggio = "Tasto destro disabilitato";
    
    function DisabilitaIE4(){
        if (event.button == 2 || event.button == 1){
            alert(messaggio);
            return false;
        }
    }
    
    function DisabilitaNS4(e){
        if (document.layers || document.getElementById && !document.all){
            if (e.which == 1 || e.which == 2 || e.which == 3) {
                alert(messaggio);
                return false;
            }
        }
    }
    
    document.onload = function () {
        if (document.layers){
            document.captureEvents(Event.MOUSEDOWN);
            document.onmousedown = DisabilitaNS4;
        }
        else if (document.all && !document.getElementById){
            document.onmousedown = DisabilitaIE4;
        }
    }
    
    document.oncontextmenu = function () { 
        alert(messaggio);
        return false;
    }
    
    // -->
    il codice non lo devi richiamare perché si "richiama da solo"

    questo codice in pratica disattiva il tasto destro e se viene premuto appare un alert

  5. #5
    Guest

    Predefinito

    No vabò io non devo disattivare il tasto destro....voglio soltanto che sul bottone si possa cliccare solo col sinistro, o meglio...che vale solo il sinistro..quello che hai messo credo disattiva il tasto destro per tutta la pagina.
    Stavo pensando una cosa...se invece metto onclick e faccio il controllo per il tasto invio?? Si potrebbe fare?? Perchè onclick funziona solo col sinistro...giusto???

  6. #6
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Fai così:
    Codice HTML:
    <input type='button' onmouseup='return check(event);'>
    Codice:
    function check(e) {
        var b = e.button || e.which;
    
        if(b != 1)
             return false;
        return true;
    }

  7. #7
    Guest

    Predefinito

    Apposto risolto.. L'ho fatto così:

    Codice:
    function aumenta(event)
      { 
       if( event.which == 1 || event.button == 1)
          {
          count++;
            document.getElementById('p').innerHTML= count;
            }
       }
    Grazie di tutto...tvb xD

Regole di scrittura

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