Szukałem dobrej oferty i nie mogę znaleźć satysfakcjonującego rozwiązania. Mam nadzieję, że ktoś może pomóc.Wykrywanie kodu JavaScript przy wykryciu Mouseup
Podczas gdy używam jQuery, piszę również wiele tysięcy linii Javascript. Więc "czyste" rozwiązanie javascript jest w porządku.
Próbuję ustalić, czy klawisz kontrolny jest fizycznie zatrzymany na zdarzenie mouseup. To jest to; nie ma innych warunków wstępnych. Czy ktoś wie, jak to zrobić w sposób niezawodny, w różnych przeglądarkach?
Próbowałem przechowywania to w zmiennej stanu zauważając, gdy klawisz zostanie naciśnięty i zwolniony:
// BEGIN store control key status in hash_state
$().bind('keydown','ctrl',function(arg_obj_e){
hash_state.sw_ctrldn = true;
console.debug(hash_state.sw_ctrldn);
});
$().bind('keyup','ctrl',function(arg_obj_e){
hash_state.sw_ctrldn = false;
console.debug(hash_state.sw_ctrldn);
});
// END store control key status in hash_state
Jednak to naprawdę nie działa. Jeśli przetestujesz to za pomocą firebuga i obejrzysz konsolę, zobaczysz, że automatyczne powtarzanie wydaje się mieć miejsce, a wartość przełącza się.
I obejrzał mouseUp imprezę, aby zobaczyć, czy jest coś przydatny tam, ale bezskutecznie:
var debugEvent = function(arg_obj_e){
var str = '';
for (var attr in arg_obj_e){
str += attr + ': ' + arg_obj_e[attr] + '\n';
}
console.debug(str);
}
Każda pomoc będzie mile widziane.
Wow, nie wiedziałem, że jQuery obsługiwał kluczowe zdarzenia w ten sposób. Nie mogę znaleźć żadnej dokumentacji tego. Czy działa również funkcja $(). Bind() (puste jQuery), czy jest to tylko skrót? Jeśli tak, czy jest powiązany z $ (dokument)? – eyelidlessness
@eyelidlessness: Ten rodzaj powiązania pochodzi z wtyczki o nazwie js-hotkeys http://code.google.com/p/js-hotkeys/ – CMS