Estoy buscando implementar un sistema de espacio para pausar para un video HTML5 en mi sitio a través de jquery, pero lo que encuentro es que cuando hice clic en una entrada en la misma página, agregar un espacio a la entrada de texto no no funciona Simplemente sigue reproduciendo/pausando el video.
Lo que busco hacer es algún tipo de declaración if que diga "si la entrada no está enfocada, presione espacio para pausar el video", pero también algo para verificar repetidamente esta condición para que no suceda solo una vez.
Casi tuve éxito usando setInterval para hacer esto, pero el tiempo de jquery es completamente impreciso y solo hace que el video solo se detenga a veces.
El código actual de espacio para pausa es el siguiente.
$(window).keypress(function(e) { var video = document.getElementById("vid"); if (e.which == 32) { if (video.paused) video.play(); else video.pause(); } });Gracias por cualquier ayuda.
¡Sugeriría verificar el objetivo de su evento de clic y trabajar en base a eso! Algo como esto debería funcionar
$(window).keypress(function(e) { const video = document.getElementById("vid"); // check if keypress event originates from an input and if so; NOOP const nodeName = e.target.nodeName; if (nodeName && nodeName.toUpperCase() === "INPUT") { return; } if (e.which == 32) { if (video.paused) { video.play(); } else { video.pause(); } } }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <video controls id="vid" style="width: 400px; display:block;"> <source src="https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.webm" type="video/mp4"> </video> <input type="text" value="write here!">