[英]Click event in for each loop fires multiple times
我有一個.each
循環是這樣的:
$('.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();
});
我如何一次觸發一次onCLick event
? 現在,每次點擊會觸發兩次。
循環后初始化事件
var $toggle = '';
$('.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],
$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);
updateWellnessPrice();
updateSubscriptionAmount();
});
將一個類放入所有相關元素,並為該類添加一個事件偵聽器:
的HTML
<div id="toggle_n" class="myElem"> .. </div>
...
jQuery的
$(document).on('click', '.myElem', function() {
// Do your stuff here ..
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.