Javascript jQuery fadeOut()只工作一次

Javascript jQuery fadeOut()只工作一次,javascript,jquery,fadeout,Javascript,Jquery,Fadeout,我正在使用jQuery淡出我构建的“通知”气泡。第一次调用函数时,它会很好地淡出,但第二次“通知”会附加到主体中,但只是停留在那里,不会淡出。任何帮助都将不胜感激 下面是正在调用的Javascript if (pointsCalculated = 1) { $('body').append('<div id="progress">' + pointsCalculated + ' point added to current points...</div>'

我正在使用jQuery淡出我构建的“通知”气泡。第一次调用函数时,它会很好地淡出,但第二次“通知”会附加到主体中,但只是停留在那里,不会淡出。任何帮助都将不胜感激

下面是正在调用的Javascript

    if (pointsCalculated = 1) {
    $('body').append('<div id="progress">' + pointsCalculated + ' point added to current points...</div>');
}
else {
    $('body').append('<div id="progress">' + pointsCalculated + ' points added to current points...</div>');
}

//Reset calculator after adding to tracker
calcReset();

    $("#progress").fadeOut(2000);
if(pointscaleculated=1){
$('body')。追加(''+pointscaleculated+'点添加到当前点…');
}
否则{
$('body')。追加(''+pointscaleculated+'点添加到当前点…');
}
//添加到跟踪器后重置计算器
calcReset();
$(“#进展”)。淡出(2000年);

每次追加时,都需要将淡出事件重新绑定到#progress元素。

将元素添加回DOM时,必须重新创建追加元素淡出绑定。您可以在追加后立即创建此绑定,现在应该可以使用了。

尝试在淡出后删除元素:

$("#progress").fadeOut(2000, function() { $(this).remove(); });
更多信息:



您的代码不会显示您正在删除“进度”,因此每次都可能添加一个新的进度。由于ID很可能是唯一的,因此您的代码会找到两个ID并失败。

Javascript无法找到多个ID为的元素,并且当您想要再次运行它时,它已经消失了

您可以将id更改为一个类,然后查找所有可见且未设置动画的.progress来启动该项目的淡出,完成后您可以将其删除,这样您就不必太多。progress

$('body').append('<div class="progress">' + pointsCalculated + ' ' + (pointsCalculated === 1 ? 'point' : 'points') + ' added to current points...</div>');

//Reset calculator after adding to tracker
calcReset();

$(".progress:visible:not(:animated)").fadeOut(2000, function() { $(this).remove(); });
$('body').append(''+pointscaleculated+''+(pointscaleculated==1?'point':'points')+'添加到当前点…');
//添加到跟踪器后重置计算器
calcReset();
$(“.progress:visible:not(:animated)”).fadeOut(2000,function(){$(this.remove();});

请记住,在javascript中,如果要查看某个变量是否为值,则需要至少使用两个“=”,否则将为该变量设置值。

如果要附加具有相同id的第二个div,请检查该div是否存在并使用fadIn()或者以其他方式更改可见性并编辑其内容。为什么您在
if
else
语句中执行两个相同的操作?@RokoC.Buljan一个说点,另一个说点这非常有效-谢谢。真不敢相信我没能把潜水器取下来,噢。