Ich habe eine .each
Schleife wie folgt aus:Click-Ereignis für jede Schleife in feuert mehrmals
$('.form-base-subscriptions input').each(function (index, value) {
var uniqueId = $(this).attr('id'),
uniqueId = uniqueId.substring(uniqueId.lastIndexOf('_')),
$parent = $(this).parent(),
$content = $parent.html();
$content = $content.split('~'),
input = $content[0],
amount = $content[4],
var $toggle = $parent.find('.form-toggle'),
$checkbox = $toggle.find('input');
$toggle.on('click', function() {
$('.form-base-subscriptions .form-toggle').removeClass('active');
$('.form-base-subscriptions input').prop('checked', false);
$toggle.addClass('active');
$checkbox.prop('checked', true);
var currentId = $(this).attr("id");
if (currentId == "toggle_151" || currentId == "toggle_170") {
amount = '1.50';
} else {
console.log('check');
amount = '0';
}
$('#toggle_153 input').attr('data-amount', amount);
$('#toggle_153 span').html(amount);
//updateWellnessPrice();
updateSubscriptionAmount();
});
Wie ich auslösen diese onCLick event
nur einmal pro Klick? Jetzt wird es zweimal pro Klick ausgelöst.
Bewegen Sie den Klick ev aus der '.each'-Schleife heraus. Momentan registrieren Sie das Click-Ereignis wegen der Schleife mehrfach. – Krishna
Möglicherweise nicht verwandt, aber Sie scheinen Variablen im globalen Bereich aufgrund eines Rogue 'fallen' '' '(oder wahrscheinlicher, wegen Rogue', 's und Sie nicht alle Variablen an der Spitze deklarieren). – Sumurai8
Brauchen Sie den relevanten HTML zu sehen - speziell, gibt es einen '.form-Toggle' (wie der Name und der Fehler implizieren) oder einen pro Eingabe (wie der Code impliziert). Wenn es nur einen gibt, möchten Sie sicherstellen, dass '$ toggle.on ('click'' nur einmal aufgerufen wird. –