Cuando un usuario no conectado hace clic en un botón determinado, quiero detener el evento, recopilar su oauth, recopilar su correo electrónico si no lo tengo y luego ejecutar el evento.Pasar elegantemente un "evento de clic" a través de varias devoluciones de llamada
Quiero hacer todo en javascript porque eso mantendría las cosas mucho más simples.
Esta es la forma en que estoy ejecutando la misma, y tengo 2 preguntas:
- ¿Existe una forma más elegante de hacer las devoluciones de llamada de múltiples niveles?
- La forma en que estoy desencadenando el evento al final parece hackish. ¿Cuál podría ser una mejor manera de hacerlo?
jQuery("a.callbacktesting").click(function(event){ if (success==false){ event.preventDefault(); event.stopImmediatePropagation(); authentication({endevent:event,followup:afterEmail},collectEmail, failFn); } }); //1st level function function authentication(params, successFn, failFn){ if (success=true){ successFn(params,params.followup,failFn); }else{ failFn(); } } //2nd level function function collectEmail(params, successFn, failFn){ console.log("Collecting email"); if (success=true){ successFn(params); }else{ failFn(); }; } //After everything is done, you want to execute this function afterEmail(params){ jele=$(params.endevent.currentTarget) action=params.endevent.type jele.trigger(action); }
Hmmm, eso es lo que hice - endevent: event, puse el evento directamente como un param. El problema es cómo puedo almacenar el evento click como una variable y ejecutarlo. No puedo encontrar un comando (event.XXX) para ejecutarlo –