Народ поможите пожалуйста. На профи ни капли не придендую, делаю одну штучку себе именно для IE (не пинайте за него), она работает, НО, как всегда есть своё НО.
В шапке пишу такой код (кратко суть - при наведении на картинку рисует её увеличенное изображение)
ToolTip.offsetX = - (10 + IMG_size + 10)
ToolTip.offsetY = 17
function ToolTip(obj, text)
{
if (!obj || obj.nodeType != 1) { throw "Illigal argument exception" }
var tip = document.createElement("DIV")
tip.className = 'tool_tip'
tip.innerHTML = "<CENTER>Моё окно</CENTER>"
tip.style.top = 10
tip.style.left = 10
document.body.appendChild(tip)
obj.onmouseout = function (ev)
{ tip.style.visibility = 'hidden' }
obj.onmousemove = function(ev)
{
tip.style.visibility = 'visible'
if (window.event) ev = window.event
if(ev.clientX+20+tip.offsetWidth+18 > document.body.clientWidth) { ToolTip.offsetX =- tip.offsetWidth - 20 } else { ToolTip.offsetX = 20 }
if(ev.clientY+10+tip.offsetHeight+0 > document.body.clientHeight) { ToolTip.offsetY =- tip.offsetHeight - 10 } else { ToolTip.offsetY = 10 }
tip.style.left = ev.clientX + document.body.scrollLeft + ToolTip.offsetX
tip.style.top = ev.clientY + document.body.scrollTop + ToolTip.offsetY
}
}
function initToolTips()
{
// предположительно тут надо как-то удалять старые объекты, прежде чем создавать новые
var tags, tooltext
for(var i = 0; i < arguments.length; i++)
{
tags = document.body.getElementsByTagName(arguments[i])
for (var j = 0; j < tags.length; j++)
if ((tooltext=tags[j].getAttribute('tooltip'))) { ToolTip(tags[j], tooltext) }
}
}
В теле страницы скриптом вписываю картинку(и)
sss.innerHTML("<IMG tooltip='" + screens + "' src='" + screens + ".jpg'>")
....
initToolTips("img") // для инициализации всплывающих окошек
Ну и вот это самое тело формируется динамически по клику повторно переписывается через innerHTML с последующей инициализацией. Зачем так реализовано это не обсуждается, т.к. этот пример очень сильно обрезан для демонстрации только основного кода. А теперь суть самой проблемы!!!
При первой инициализации в теле страницы (если смотреть отладчиком) появляется DIV, ну как бы всё хорошо,так и должно быть. При повторной инициализации в теле страницы уже два DIV`а, ну и так далее по нарастающей. Т.к. истестна я гружу не только одну картинку, а большой объём контента, то страница разрастается очень сильно (видно только в отладчике, внешне всё замечательно) и сжирает кучу ресурсов. Потому предполагаю, что при инициализации надо как-то убирать ранее добавленные объекты!
Не силён вообще я пока что в этом, я только учусь, поможите