Witam programistów.
Chciałbym aby na mojego diva dało się kliknąć ale nie przyciskiem myszy tylko innym klawiszem klawiatury. To znaczy, że po najechaniu i kliknięciu na element da się wywołać pewną funkcję ale tylko pewnym klawiszem (lub klawiszami) klawiatury.
Dodawanie kliknięcia myszy na dowolny inny klawisz
- Rejestracja: dni
- Ostatnio: dni
- Postów: 19
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Chorzów
- Postów: 1670
musisz odpowiednio oprogramować zdarzenia:
- onmouseover
- onmouseout
- onkeypress
czyli onkeypress wykonuje akcję tylko gdy wcześniej na obiekcie zaszło zdarzenie onmouseover i nie zaszło jeszcze onmouseout.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 19
A byłbyś w stanie napisać mi kod jak to mniej więcej powinno wyglądać?
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Warszawa
- Postów: 110
Tak gwoli ścisłości, terminy podane przez @katakrowa to nazwy właściwości (atrybutów), przypisujesz do nich obsługę np tak:
<div onmouseover='jakasFunkcja()'></div>
Zdarzenia to odpowiednio mouseover, mouseout i keypress.
Do rzeczy: mouseover jest zgłaszany, gdy myszka najedzie na dany element, mouseout - gdy go opuści. Masz więc dwa narzędzia, którymi możesz określić stan danego elementu - czy jest 'najechany' przez myszkę, czy nie.
var isHovered = false;
el.addEventListener('mouseover', (event) => {
isHovered = true;
});
el.addEventListener('mouseout', (event) => {
isHovered = false;
});
keypress jest zgłaszany, gdy użytkownik naciśnie klawisz. Możesz zapiąć się na to zdarzenie na poziomie document, aby mieć zgłaszane wszystkie tego typu zdarzenia na stronie (niezależnie gdzie jest focus). Teraz wystarczy to połączyć z powyższym:
document.addEventListener('keypress', (event) => {
if (event.key === 'a' && isHovered) {
console.log('Nacisnieto a w obrebie elementu');
}
});
Tak na przyszłość:
- Googluj, gdy dostaniesz podpowiedź, a nie wiesz jak tego użyć. W internecie jest masa przykładów użycia tych eventów i nie tylko.
- Wrzucaj zawsze jakiś zalążek rozwiązania. O wiele chętniej pomaga się osobie, która już zaczęła samodzielnie coś robić w danym kierunku, ale czegoś jej brakuje.