¿Alguien sabe cómo combinar estos dos eventos en jQuery?
Lo más cerca que pude estar fue tener 2 scripts duplicados que responden a 2 eventos diferentes, lo que en mi opinión es absolutamente terrible. Pero es la única forma que se me ocurrió de hacer esto por ahora. Ambos scripts hacen exactamente lo mismo (o MUCHAS cosas en realidad). Sé que jQuery tiene una opción para agregar múltiples controladores de eventos al mismo elemento, pero ¿cómo funciona esto si uno de los eventos contiene una condición if ?
Esto se ejecuta cuando el usuario hace clic en un botón de radio en un grupo de radio:
$(document).ready(function() { // When radio button is clicked $("input[name='select']").click(function() { var select = $("input[name='select']:checked").val(); $.ajax({ type: "POST", url: "script.class.php", data: { select: select }, cache: false, success: function(data) { // A lot of things will happen here... }, error: function(xhr, status, error) { console.error(xhr); } }); }); });Esto se ejecuta SI el grupo de radio ya tiene un botón de radio seleccionado:
$(document).ready(function() { // If value is already present if ($("input[name='select']:checked").val()) { var select = $("input[name='select']:checked").val(); $.ajax({ type: "POST", url: "script.class.php", data: { select: select }, cache: false, success: function(data) { // The same things as in the previous script will also happen here... }, error: function(xhr, status, error) { console.error(xhr); } }); } });Ponga todo el código común en una función y luego llámela
$(document).ready(function() { // When radio button is clicked $("input[name='select']").click(commonCode); if ($("input[name='select']:checked").val()) { commonCode(); } function commonCode(){ var select = $("input[name='select']:checked").val(); $.ajax({ type: "POST", url: "script.class.php", data: { select: select }, cache: false, success: function(data) { // A lot of things will happen here... }, error: function(xhr, status, error) { console.error(xhr); } }); } });