Quiero llamar a una función llamada func2 después de que la función de clic de botón haya terminado sus operaciones usando jQuery. Estoy usando este método pero no funciona. llama a la función de clic del botón en el tiempo de carga.
$("#btn-click").click(function(){ //do something }); function func2() { //do something } $.when( $("#btn-click").click() ).done(function() { func2(); });Esta es una forma de hacerlo: define una acción para hacer clic en el botón. En mi ejemplo, creé una promesa con una llamada a setTimeout() . Esto podría ser una llamada Ajax o cualquier otra cosa (no necesariamente devolver una promesa). Tan pronto como se realiza la acción o se cumple la promesa, func2 entrará en acción.
$("#btn-click").click(func1); function func1(){ console.log("func1 started..."); $.when(new Promise(res=> setTimeout(res,1000))) .then(()=>{ console.log("func1 done."); func2()}); } function func2() { console.log("func2"); } <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <button id="btn-click">click</button>