Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> zablokowanie przytrzymywania
wezyrno
post 9.08.2014, 10:18:30
Post #1





Grupa: Zarejestrowani
Postów: 130
Pomógł: 0
Dołączył: 11.09.2011

Ostrzeżenie: (50%)
XXX--


Jak sprawić, aby nie można było wywoływać danej funkcji poprzez
określony klawisz, gdy się go przytrzymuje? Tylko, gdy się go przyciska.

Kod
var mozna = true;
$(document).unbind('keypress');
$(document).keydown(function(e){
    var numer = e.keyCode;
    if(numer == 40  && mozna == true){
        mozna = false;

        funkcja(4);
        setTimeout(function(){mozna = true;},600);
    }
}


W tym wypadku jest tak, że należy odczekać 600ms, aby móc wywołać funkcje.
I opóźnia to rzecz jasna wywołanie jej. Ale nie zmienia to faktu, ze mozna to robic przytrzymując klawisz, a tego bym nie chciał.
Go to the top of the page
+Quote Post
Pyton_000
post 9.08.2014, 11:12:59
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


keyup ?
Go to the top of the page
+Quote Post
wezyrno
post 9.08.2014, 11:25:10
Post #3





Grupa: Zarejestrowani
Postów: 130
Pomógł: 0
Dołączył: 11.09.2011

Ostrzeżenie: (50%)
XXX--


nie wiem jak to zastosować / dostosować sad.gif
Go to the top of the page
+Quote Post
Pyton_000
post 9.08.2014, 12:18:29
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Kod
$(document).keyup(function(e){
Go to the top of the page
+Quote Post
wezyrno
post 9.08.2014, 12:52:24
Post #5





Grupa: Zarejestrowani
Postów: 130
Pomógł: 0
Dołączył: 11.09.2011

Ostrzeżenie: (50%)
XXX--


Tak właśnie miałem, i gdy dałem do tego:
mozna = false;

To w ogole po kliknieciu sie funkcja nie wywolywala.
Tak jakby nei dotyczylo to tylko wciskania, ale również pojedynczego kliknięcia.
Go to the top of the page
+Quote Post
trueblue
post 9.08.2014, 12:55:11
Post #6





Grupa: Zarejestrowani
Postów: 6 799
Pomógł: 1827
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


  1. $(document).keypress(function(e){
  2. var numer = e.keyCode;
  3. if(numer == 40 && $(document).data('keypressed')!==true){
  4. $(document).data('keypressed',true);
  5. funkcja(4);
  6. }
  7. });
  8. $(document).keyup(function(e){
  9. $(document).data('keypressed',false);
  10. });


Ten post edytował trueblue 9.08.2014, 12:55:19


--------------------
Go to the top of the page
+Quote Post
wezyrno
post 9.08.2014, 13:07:48
Post #7





Grupa: Zarejestrowani
Postów: 130
Pomógł: 0
Dołączył: 11.09.2011

Ostrzeżenie: (50%)
XXX--


Wielkie dzięki.
Ale mam jeszcze jedno pytanko. Co wstawić do tego kodu, aby po kliknięciu strzałki nie przesuwała się jednocześnie strona w poziomie (gdy ktos ma mniejszą rozdzielczość ekranu)?
Go to the top of the page
+Quote Post
Pyton_000
post 9.08.2014, 14:43:52
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


przed całym kodem daj to
Kod
window.addEventListener("keydown", function(e) {
    // space and arrow keys
    if([32, 37, 38, 39, 40].indexOf(e.keyCode) > -1) {
        e.preventDefault();
    }
}, false);
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.06.2025 - 00:17