Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> zablokowanie przytrzymywania
wezyrno
post
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
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
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ć (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
Pyton_000
post
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
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
Post #6





Grupa: Zarejestrowani
Postów: 6 809
Pomógł: 1828
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
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
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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.12.2025 - 19:46