我有以下javascript它会在屏幕上弹出一条消息,但是如果它还没有被移除,那么它总是在上一个messageDiv的顶部。
我正在试图找出如何让messageDiv按下前一个div直到它消失然后取消之前的MessageDiv的位置,或者显示在页面上当前的一个下方当新的出现时,向下移动到前一个下方。
If readOnlyFlag = True AND sheetExists = True Then
AddSheetAtEnd = False
Exit Function
Elseif readOnlyFlag = False Then
If sheetExists = True Then DeleteSheet(ShtName)
With ThisWorkbook
.Sheets.Add(After:=.Sheets(.Sheets.Count)).Name = ShtName
AddSheetAtEnd = True
End With
End If
答案 0 :(得分:2)
我认为您遇到了问题,因为您有多个具有相同ID的元素,并且当您的setTimeout回调执行时,它会删除最新的消息而不是最旧的消息。 HTML中只允许一个具有给定ID的元素。你需要找出一种不同的方法来找到应该为特定超时删除的div,例如(我摆脱了无关的AJAX代码):
function pushDev(){
var messageDiv = $("<div class='pageMessage'>Data</div>")
$("body").prepend(messageDiv);
setTimeout(function(){messageDiv.remove()}, 6000);
}
function savePage(){
var messageDiv = $("<div class='pageMessage'>Saved</div>")
$("body").prepend(messageDiv);
setTimeout(function(){messageDiv.remove()}, 6000);
}