Czy istnieje funkcja JavaScript powtarzana co tylu milisekund, przez co przycisk HTML jest przytrzymywany? Byłoby wspaniale, gdyby można to było zrobić za pomocą standardowego JavaScript, ale używanie jQuery lub wtyczki jQuery byłoby również świetne.Powtórz czynność w języku JavaScript po przyciśnięciu myszy
Odpowiedz
W zdarzeniu mousedown()
ten kod uruchamia powtarzający się zegar (co 500 ms w tym przykładzie), który jest anulowany, gdy wystąpi zdarzenie mouseup()
. To powinno być dostosowane do tego, co chcesz:
var intervalId;
$("#button").mousedown(function() {
intervalId = setInterval(do_something, 500);
}).mouseup(function() {
clearInterval(intervalId);
});
function do_something() {
// whatever
}
Zobacz setInterval()
Więcej informacji na temat rozliczeń liczniki.
Chciałbym używać funkcji javascript setInterval()
w funkcji, która jest wywoływana po naciśnięciu myszy.
<input type="button" id="button" onmousedown="inter=setInterval(startAction, 1*1000);"
onmouseup="clearInterval(inter);" value="click here" />
<script type="text/javascript">
function startAction(){
//whatever you want done
}
</script>
Widzę problem z obydwoma rozwiązaniami wymienionymi powyżej.
onmouseup
jest wyzwalany tylko wtedy, gdy mysz zostanie zwolniona, gdy znajdzie się nad przyciskiem. Jeśli użytkownik przytrzyma mysz, a następnie odsunie mysz przed jej zwolnieniem, wówczas clearInterval
nigdy nie zostanie wyrzucony, a więc będzie się zawsze wyrzucał.
Należy dodać kolejne zdarzenie "onmouseout
", które również wywołuje clearInterval
.
To prawda, ale proszę, utwórz tę odpowiedź, dodając przykładowy kod. –
var intervalId;
$("#button").mousedown(function() {
intervalId = setInterval(do_something, 500);
}).mouseup(function() {
clearInterval(intervalId);
}).mouseleave(function() {
//this should help solve the problem that occurs when the mouse leaves the button while pressed down
clearInterval(intervalId);
});
function do_something() {
// whatever
}
- 1. Powtórz czynność po naciśnięciu długiego przycisku.
- 2. ToolTip WPF znika po przyciśnięciu myszką
- 3. Czynność po zamknięciu formularza
- 4. jquery javascript: wykonaj czynność po wybraniu przycisku radiowego
- 5. Powtórz listę z indeksami w języku Python
- 6. AngularJS: Powtórz po określonym indeksie
- 7. Jak zapobiec przyciśnięciu obrazu tła po otwarciu klawiatury?
- 8. Po kliknięciu myszy uzyskasz położenie myszy?
- 9. Przenoszenie kursora myszy JavaScript
- 10. Jak zmienić kursor myszy w języku Java?
- 11. Odpowiedz na ruch myszy po naciśnięciu klawisza (JavaScript, jQuery)
- 12. javascript pobiera współrzędne X i Y po kliknięciu myszy
- 13. Wyświetl wygenerowane źródło (po AJAX/JavaScript) w języku C#
- 14. W języku javascript, jak wywołać zdarzenie po zmianie wartości zmiennej?
- 15. ognisko "wklej" w języku JavaScript
- 16. Przechwytywanie pozycji myszy na setInterval() w JavaScript
- 17. Jak wykrywać kliknięcia myszy w JavaScript?
- 18. Ukrywanie przycisku w języku Javascript
- 19. Powtórz obraz w C#
- 20. UIRefreshControl - Jak wykonać czynność odświeżania po zwolnieniu przycisku dotykowego?
- 21. Nie można wykonać tę czynność po onSaveInstanceState (preferencji onClick)
- 22. android Jak otworzyć ostatnią czynność po dotknięciu powiadomienia
- 23. Nie można wykonać tę czynność po onSaveInstanceState na super.onBackPressed()
- 24. Mapowanie zdarzeń dotykowych JavaScript na zdarzenia myszy
- 25. Zmiana pozycji myszy po dodaniu okna podglądu
- 26. Transformacje SVG w języku JavaScript
- 27. Czynność kliknięcia przycisku w systemie Android?
- 28. Powtórz pędzel tła w WPF
- 29. Powtórz elementy wektora w R
- 30. Framework UI oparty na języku JavaScript oparty na języku JavaScript
Jeśli chcesz, aby zdarzenie miało miejsce od razu, ORAZ co 500 milisekund, po prostu wywołaj 'do_something()' bezpośrednio przed wywołaniem setInterval. –
@TylerCollier Dzięki za wskazanie. Następnie działa jak kliknięcie i powtarzające się działanie. Bardzo przydatny. W moim przypadku musiałem również przekazać parametry, do tego trzeba przypisać funkcję anonimową: 'setInterval (function() {mojafunkcja (wartośćA, wartośćB);}, 500);' –
@TylerCollier czy ktoś może mi powiedzieć, dlaczego nie ten przystanek? http://jsfiddle.net/oxpku7f1/1/ – Arbaaz