jquery append()发生了两次
这是我到目前为止的代码jquery append()发生了两次,jquery,Jquery,这是我到目前为止的代码 $('label').click(function () { if ($('label input').is(':checked')) { $(this).addClass('checked'); $('.donate-now label').not(this).removeClass('checked'); var donateAmount = $(".checked input"
$('label').click(function () {
if ($('label input').is(':checked')) {
$(this).addClass('checked');
$('.donate-now label').not(this).removeClass('checked');
var donateAmount = $(".checked input").val();
$('p').append(donateAmount);
}
});
我正在检查以确保“donatamount”变量只获取一个值,因此为了测试,我将它附加到HTML中,但它显示了两次
这是一个append()函数,而我的变量只有一个值,还是出了什么问题?本质上,我只是想确保我的变量有一个值
在这里,它正在发挥作用
谢谢请使用以下命令,而不是追加:
$('p').html(donateAmount);
Append每次都会在该
元素中放入一个新元素,而不是替换它的内容。尝试将选择器更改为:
$('label input').click(function () {
....
});
您的问题是,当您单击收音机时,您正在单击标签和收音机。由于您正在单击子元素,因此事件将触发两次。如果在单击单选按钮时将选择器再聚焦一点并仅捕获,则它将只触发一次。单击标签也会触发对输入的单击
将其从“附加”更改为“替换”并不能解决问题,只需屏蔽它。您应该在附加容器之前将其.empty()
清空。:)
为什么你的事件会被触发两次,我不是100%确定,但我认为这可能是标签点击事件的方式。我敢肯定它是委托给你的无线电输入,然后触发另一个标签点击
我还对代码做了一些修改,以减少嵌套/链接。让我知道,如果这照顾它为你 还要记住,input
标记是一个空元素,因此没有设计为在标记之间有结束标记,甚至没有内容<代码>$50
无效。明白!谢谢你的澄清。