Chciałbym odpowiedzieć na zdarzenia związane z naciśnięciem klawisza skierowane na węzły w układzie sił. Próbowałem dodać wszystkie warianty "keystroke", "keypress", "keyup", "keydown", o których mogłem pomyśleć, ale żaden z nich nie strzela. Moje zdarzenia myszy są w porządku. Nie mogłem znaleźć żadnych naciśnięć klawiszy w źródle d3 .... czy istnieje sposób na przechwytywanie naciśnięć klawiszy?Jak przechwytywać zdarzenia związane z naciśnięciami klawiszy w układzie sił D3?
nodes.enter().append("circle")
.on("click", function(d) { return d.clickHandler(self); })
.on("mouseover", function(d) { return d.mouseOverHandler(self); })
.on("mouseout", function(d) { return d.mouseOutHandler(self); })
.on("keyup", function(d) {
console.log("keypress", d3.event); // also tried "keyup", "keydown", "key"
})
.classed("qNode", true)
.call(force.drag);
Działa to dobrze, ale to nie ma nic do mnie na elemencie chcę manipulować. Skąd mam wiedzieć, który element SVG znajdował się pod kursorem, gdy nastąpiło zdarzenie naciśnięcia klawisza? –
w tym celu, proponuję dodanie detektora zdarzeń "mouseover" na twoich elementach, a następnie testowanie dla naciśnięć klawiszy w tej funkcji, chociaż nie jestem pewien, czy jest to idealne rozwiązanie – Josh
, więc to zaczyna się na moje pytanie: jak testować dla klawiszy w zdarzeniu "mouseover" bez przebudowania całej infrastruktury obsługi zdarzeń? –