Tengo una función que se activa en un onclick en línea.
Lo que quiero es que se llame a esa función solo una vez, pero no sé cómo hacerlo con un onclick en línea. Está funcionando en este momento, pero se ejecuta cada vez que el usuario hace clic en lugar de solo una vez.
Así es como lo tengo:
HTML
<div class= "container" onclick="modal('#modal')"></div>Intenté tenerlo como una función Jquery de la siguiente manera y eliminé el clic anterior, pero tampoco funciona:
$(".container").on( "click", modal( '#modal') { alert( "The event happened!" ); });¿Alguna idea de cómo hacer que la función solo se ejecute una vez?
Gracias
Si desea usar jQuery's one() , deberá eliminar el onclick del HTML y cambiar el JS para que diga:
$( ".container" ).one( "click", function() { alert( "The event happened!" ); }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class= "container">Container</div> De esta manera, la alert() solo se mostrará en el primer clic .
Si desea usar on() como se indica en su pregunta, use $(this).off('click'); para eliminar el detector de eventos después de presionar el puño:
$( ".container" ).on( "click", function() { alert( "The event happened!" ); $(this).off('click'); }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class= "container">Container</div>