Mam

$(document).keyup(function(e) {
  //some code is here
});

Kod, który działa zgodnie z oczekiwaniami: Ogrzewa, gdy naciskam dowolny klawisz na klawiaturze. Chcę tego strzelać, ale nie, gdy kursor jest w

<input type="text" id="excludeMeFromFiring">

Który znajduje się na stronie.

Jak zmodyfikować powyższy kod, aby wykluczyć strzelanie podczas pisania w polu tekstowym wejściowym ze specjalnym identyfikatorem? Więc nie pożaruje, jeśli kursor znajduje się w polu tekstowym wejściowym.

Dziękuję Ci.

0
Haradzieniec 9 grudzień 2013, 18:39

3 odpowiedzi

Najlepsza odpowiedź

Łatwo jest to zrobić w funkcji keyup:

$(document).keyup(function(e) {
    if ($(e.target).closest("#excludeMeFromFiring")[0]) {
        return;
    }

    // It's not that element, handle it
});

To ogólna sprawa; Ponieważ elementy input nie mogą mieć żadnych elementów, można po prostu użyć e.target.id, a nie closest:

$(document).keyup(function(e) {
    if (e.target.id === "excludeMeFromFiring") {
        return;
    }

    // It's not that element, handle it
});

Używam closest, gdy element może mieć inne elementy w niej.

5
T.J. Crowder 9 grudzień 2013, 14:51

Próbować

$(document).keyup(function (e) {
    if(e.target.id === 'excludeMeFromFiring'){
        console.log('no');
    }else{
        console.log('hi');
    }
});

$(document).keyup(function (e) {
    if(e.target.id !== 'excludeMeFromFiring'){
       console.log('hi');
    }
});
3
Tushar Gupta - curioustushar 9 grudzień 2013, 14:40

Inny przykład:

$('#excludeMeFromFiring').keyup(function(e) {
    e.stopPropagation();
});
3
Waqar Alamgir 9 grudzień 2013, 14:43