Lo más probable es que sea un duplicado, pero no puedo encontrar algo sobre cómo hacerlo y pido consejo para empujarme en la dirección correcta.
Con el siguiente código, quiero verificar en qué botón se hizo clic y luego hacer algunas cosas. Está funcionando, pero si por alguna extraña razón el usuario también puede hacer clic en el otro botón, mi variable se anularía.
Esa es la forma correcta de hacerlo, ¿verdad? ¿Tener una solución para todas las formas posibles en que podría suceder y no ignorarla y decir "de todos modos, nunca sucederá"?
Así que lo mejor sería (creo) detener (romper) el código (la segunda función .click ) si ya se ha hecho clic en la primera y viceversa.
Lo primero que me viene a la mente es una declaración if , pero no estoy muy seguro de cómo configuraría esto y puedo comprobar si ya se ha hecho clic en un botón.
$(document).ready(function() { let yourOrganisation; $('.donate_btn').click(function() { $('.donate_button_wrapper').hide(); $('.donate_finish_wrapper').show(); $(window).scrollTop(0); }); $(".donate_button_1").click(function() { yourOrganisation = "Organisation 1" console.log(yourOrganisation); }); $(".donate_button_2").click(function() { yourOrganisation = "Organisation 2" console.log(yourOrganisation); }); }); .donate_finish_wrapper { display: none; } <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="donate_button_wrapper"> <button class="donate_btn donate_button_1"> Button 1 </button> <button class="donate_btn donate_button_2"> Button 2 </button> </div> <div class="donate_finish_wrapper"> Some content </div>¿Qué hay de deshabilitar el otro botón?
$(document).ready(function() { let yourOrganisation; $('.donate_btn').click(function() { // commented out to show the disabled method // $('.donate_button_wrapper').hide(); $('.donate_finish_wrapper').show(); $(window).scrollTop(0); if($(this).hasClass('donate_button_1')) { $('.donate_button_2').attr('disabled','disabled'); yourOrganisation = "Organisation 1" } if($(this).hasClass('donate_button_2')) { $('.donate_button_1').attr('disabled','disabled'); yourOrganisation = "Organisation 2" } }); }); .donate_finish_wrapper { display: none; } <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="donate_button_wrapper"> <button class="donate_btn donate_button_1"> Button 1 </button> <button class="donate_btn donate_button_2"> Button 2 </button> </div> <div class="donate_finish_wrapper"> Some content </div>Puede verificar si la variable "suOrganización" ya se ha configurado:
if(!yourOrganisation) {yourOrganisation = "Organisation 1";}y
if(!yourOrganisation) {yourOrganisation = "Organisation 2";}