• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

addEventListener click Funktion wird sofort ausgeführt

andynail

Mitglied
Hallo zusammen

auf meiner Seite sollen Links auch Benutzerdaten einblenden können. Aber selbstverständlich sollen diese auch wieder ausgeblendet werden, doch wird die Funktion dafür auch sofort ausgeführt:

function ShowLinkDaten(Link, DBID)
{
var Leiste = top.document.getElementById("Daten")
txt = Link.getAttribute("Daten")
$(Leiste.innerHTML = txt.replace("\n", "<br>")).ready()
{
top.frames["DatenFrame"].onscroll = function() {HideLinkDaten(DBID); }
top.document.body.addEventListener("onresize", function() {HideLinkDaten(DBID); BereichAnpassen(); frames['DatenFrame'].focus()}, false)
top.document.getElementById("DatenBereich").onclick = function() {FrameFocus(DBID)}
window.addEventListener("focus", function() {FrameFocus(DBID)}, false)
top.frames['DatenFrame'].window.onunload = function() {CloseMe(DBID); HideLinkDaten2(); };​

top.document.getElementById("LinkDaten").style.display = ""
LinkObjektePositionieren("LinkDaten")
}​
}

function HideLinkDaten(DBID)
{
if (top.document.selection && top.document.selection.empty) top.document.selection.empty()
top.document.getElementById("LinkDaten").style.display = 'none'
top.document.getElementById('Daten').setAttribute('LinkIndex', '')
top.frames["DatenFrame"].onscroll = null
top.document.body.addEventListener("onresize", function() {BereichAnpassen(); frames['DatenFrame'].focus()}, false);
if (top.document.getElementById("Suchbereich").style.display == "none") window.removeEventListener("focus", FrameFocus, false);
top.frames['DatenFrame'].window.onunload = function() {CloseMe(DBID); HideLinkDaten2()}
top.document.getElementById("DatenBereich").onclick = null​
}

function FrameFocus(DBID)
{
if (top.document.getElementById("Suchbereich").style.display != "none") top.document.getElementById("Suchfeld").focus()
if (top.document.getElementById("LinkDaten").style.display != "none") HideLinkDaten(DBID)​
}

Doch wenn ich den Link anklicke und mir testweise eine Message mit alert in der HideLinkDaten Funktion anzeigen lasse, werden die Daten nur so lange angezeigt, so lange auch die Message angezeigt wird.

Also wie bekomme ich das bitte hin das die Daten erst in Zukunft ausgeblendet werden? Und ich würde mich freuen wenn ich es realisieren könnte, wofür ich mich bereits jetzt bei Euch bedanken möchte wie das umzusetzen wäre.

Also bereits jetzt Vielen Dank

Gruß Andreas
 
Zuletzt bearbeitet:
Werbung:
Hallo zusammen

und schade nur das bisher niemand etwas dazu wusste und sich dashier nur angeschaut wurde. Und ich traute mich nicht mich nochmal zu melden. Ich hätte wohl das Thema eher fragend schreiben sollen, denn irgend welche Probleme werden bestimmt meine Zeilen machen. Aber jetzt gibts ja neue:

function ShowLinkDaten(Link, DBID)
{
ActiveLink = Link
var Leiste = top.document.getElementById("Daten")
txt = Link.getAttribute("Daten")
$(Leiste.innerHTML = txt.replace("\n", "<br>")).ready()
{
top.frames["DatenFrame"].onscroll = function() {HideLinkDaten(DBID); }
top.frames["DatenFrame"].window.addEventListener("focus", HideLinkDaten, true)
top.frames['DatenFrame'].window.onunload = function() {CloseMe(DBID); HideLinkDaten2(); };
}
top.document.getElementById("LinkDaten").style.display = ""
LinkObjektePositionieren("LinkDaten")​
}

function HideLinkDaten()
{
if (top.document.selection && top.document.selection.empty) top.document.selection.empty()
top.document.getElementById("LinkDaten").style.display = 'none'
top.frames["DatenFrame"].onscroll = null
top.frames["DatenFrame"].window.removeEventListener("focus", HideLinkDaten, true);
top.frames['DatenFrame'].window.onunload = function() {CloseMe(DBID); }​
}

function HideLinkDaten2()
{
if (top.document.selection && top.document.selection.empty) top.document.selection.empty()
top.document.getElementById("LinkDaten").style.display = 'none'​
}

Doch weiterhin ist seltsam wieso die Daten sofort ausgeblendet werden wenn nicht das Suchfeld eingeblendet wurde. Denn wenn die Seite aufgerufen wird und das Eingabefeld zu dieser Zeit bereits schon zu sehen war wird sofort ein Listener angelegt wie er oben zu sehen ist, der aber den Fovus auf das Eingabefeld setzen soll. Und scheinbar funktioniere es ja mehrere Listener für ein Ereignis vergeben zu können, wie in diesem Fall der Focus auf das iframe.

Also ich bitte um Hilfe und das sich bitte jemand meldet.

Vielen Dank Gruß Andreas
 
Nicht persönlich gemeint, aber ich schalte bei Frames immer ab. Falls die Userdaten asynchron nachgeladen und angezeigt werden sollen, mache das mit AJAX, ansonsten mit einer serverseitigen Sprache wie PHP. Und verwende jQuery, das vereinfacht die Aufgabe.
 
Werbung:
Zurück
Oben