¿Hay una función de JavaScript repetida cada tantos milisegundos que un botón html se mantiene pulsado? Sería genial si esto se pudiera hacer con JavaScript estándar, pero usar jQuery o un plugin jQuery también sería genial.acción de repetición de JavaScript cuando se mantiene presionado el mouse
Respuesta
En el evento mousedown()
, este código inicia un temporizador repetitivo (cada 500ms en este ejemplo) que se cancela tan pronto como ocurre el evento mouseup()
. Esto debe ser adaptable a lo que quiere:
var intervalId;
$("#button").mousedown(function() {
intervalId = setInterval(do_something, 500);
}).mouseup(function() {
clearInterval(intervalId);
});
function do_something() {
// whatever
}
Ver setInterval()
para obtener más información sobre cómo eliminar los temporizadores.
Utilizaría la función javascript setInterval()
dentro de una función que se ejecuta con el mouse hacia abajo.
<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>
Veo un problema con las dos soluciones enumeradas anteriormente.
onmouseup
solo se activa si el mouse se suelta mientras está sobre el botón. Si el usuario mantiene el mouse hacia abajo y luego retira el mouse antes de soltarlo, entonces clearInterval
nunca se dispara, por lo que do_something
disparará para siempre.
Debería agregar otro evento, "onmouseout
", que también llame a clearInterval
.
Es cierto, pero por favor haga una respuesta completa agregando código de muestra. –
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. C# cómo hacer un bucle mientras se mantiene presionado el botón del mouse
- 2. Ver si se mantiene presionado el botón izquierdo del mouse en el evento OnMouseMove
- 3. acción de repetición de android al presionar y mantener presionado un botón
- 4. Android para detectar cuando mantiene presionado un botón
- 5. Comprobación de Javascript Mouse presionado dentro del círculo o polígono
- 6. ¿Cómo cambio el cursor del mouse cuando el botón izquierdo del mouse está presionado?
- 7. Chrome no aplicar el estilo CSS vuelo estacionario cuando el botón izquierdo del ratón se mantiene presionado
- 8. Eventos de mouse Java ignorados cuando el mouse se mueve?
- 9. ¿Cómo puedo hacer un swing JButton repite su acción cuando se mantiene presionada?
- 10. Forma diferente ACCIÓN según el botón presionado
- 11. IsMouseOver cuando el mouse se ha capturado
- 12. WPF: botón izquierdo del mouse, haga clic y mantenga presionado el control
- 13. Detectando cuando el mouse no se mueve
- 14. Botón del mouse presionado NSMenu en 10.5
- 15. Manteniendo presionado el botón izquierdo del mouse en AutoHotkey
- 16. Repita una acción cuando se presiona el botón largo
- 17. Necesito el código de Javascript para presionar y mantener oprimido el botón
- 18. Detectar si el botón del mouse ya está presionado antes de que el formulario muestre
- 19. Ratón Java presionado - sin eventos
- 20. Evitar la repetición de código cuando se utiliza LINQ
- 21. Detectando cuando se ha presionado un UIButton personalizado
- 22. ¿Mantiene las propiedades de mi componente cuando se cambian?
- 23. Detectar si el mouse está sobre un elemento cuando la página se carga con Javascript
- 24. ¿Cómo implemento presionar y mantener presionado el botón javascript?
- 25. Jquery Fade In cuando el mouse se acerca al elemento
- 26. Cambiar el puntero del mouse cuando se llama ajax
- 27. Jquery: cómo hacer que algo se desvanezca cuando el mouse está inactivo. Cuando el mouse se mueve de nuevo, ¡se desvanece!
- 28. Se mantiene presionada la tecla shift en JavaScript
- 29. Detectando la entrada IME antes de ingresar presionado en Javascript
- 30. ¿Activar una acción cuando se modifica document.cookie?
Si desea que el evento ocurra de inmediato, Y cada 500 milisegundos, simplemente llame a 'do_something()' inmediatamente antes de llamar a setInterval. –
@TylerCollier Gracias por señalar. Luego funciona como el evento click más la acción repetida. Muy útil. En mi caso también tuve que pasar parámetros, para esto tienes que asignar una función anónima: 'setInterval (function() {myfunction (valueA, valueB);}, 500);' –
@TylerCollier alguien me puede decir por qué no esta parada? http://jsfiddle.net/oxpku7f1/1/ – Arbaaz