Hallo,
Ich habe eine Zelle (TD) in einer Tabelle. in dem TD habe ich per appendChild ein Image eingefügt. Das Image soll visible oder hidden geschaltet werden, wenn über die TD gehovert wird.
Das klappt auch soweit. Wenn der Mousezeiger allerdings über das Image liegt, wird der onmouseout Event gefeuert, obwohl sich das Image ja in der TD befindet. Das hat zur Folge, dass das Image hidden gesetzt wird. Dadurch feuert wieder der onmouseover, usw. Das Bild dadurch flackert ständig.
Ist das korrekt? Wie kann ich das verhindern?
Danke, Franz
Ich habe eine Zelle (TD) in einer Tabelle. in dem TD habe ich per appendChild ein Image eingefügt. Das Image soll visible oder hidden geschaltet werden, wenn über die TD gehovert wird.
Das klappt auch soweit. Wenn der Mousezeiger allerdings über das Image liegt, wird der onmouseout Event gefeuert, obwohl sich das Image ja in der TD befindet. Das hat zur Folge, dass das Image hidden gesetzt wird. Dadurch feuert wieder der onmouseover, usw. Das Bild dadurch flackert ständig.
Ist das korrekt? Wie kann ich das verhindern?
Danke, Franz
HTML:
// get target element
function addTdButton(){
var tab;
var table = document.getElementById("mytable");
var tds = table.getElementsByTagName('td');
for (var i = 0; i < tds.length; i++) {
tab=document.createElement("a");
tab.setAttribute("class","tab");
tab.setAttribute("href","a.html");
tab.style.visibility='hidden';
tab.innerHTML="<img src=\"gif.gif\" href=\"a.html\" >";
tds[i].className = 'tbl';
tds[i].appendChild(tab);
}
}
function getEventTarget(e) {
var e = e || window.event;
return e.target || e.srcElement;
}
function addEdit(e) {
var target = getEventTarget(e);
if (target.tagName.toLowerCase() === 'td') {
var edit = target.getElementsByTagName('a');
edit[0].style.visibility='visible';
}
}
function removeEdit(e) {
var target = getEventTarget(e);
if (target.tagName.toLowerCase() === 'td') {
var edit = target.getElementsByTagName('a');
edit[0].style.visibility='hidden';
}
}
window.onload = function () {
addTdButton();
if (document.getElementsByTagName && document.
getElementById && document.createElement) {
var mytable = document.getElementById('mytable');
if (!mytable) {
return
};
mytable.onmouseover = function (e) {
addEdit(e)
}
mytable.onmouseout = function (e) {
removeEdit(e);
}
}
}
Zuletzt bearbeitet: