Kann man nicht auf Elemente zugreifen die per Ajax requestet wurden?

cofter

Erfahrenes Mitglied
Guten Abend,

ich hab gerade ein Problem bei meiner Seite.
Ich requeste PHP-Dateien und Füge diese dann per innerHTML in ein DIV ein.
Ich möchte jetzt bei den Dateien die per innerHTML in die index.html eingefügt werden bei bestimmten Elementen eine onmouseover function einbinden.
Die Funktion geht aber nur wenn ich sie auf Elemente in der Index.html anwende.
Bei den Dateien die per innerHTML in das Dokument eingefügt werden funktioniert leider garnix.
Ich benutze das Framework jQuery falls das wichtig sein sollte bei der Fehlerfindung.

mfg
Cofter
 
Hi,

ich kann das Problem hier nicht nachvollziehen. Folgendes Konstrukt funktioniert problemlos - zumindest im Firefox (1.5 u. 2), IE (5.0 - 7), Netscape (7.1), Opera (8.54 u.9) sowie im Mozilla 1.7.
Code:
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script type="text/javascript">
  <!--
var objRequest;

function theRequest(strUrl) {
  objRequest = false;
  // Falls es sich um einen Nicht-IE-Browser handelt
  if(window.XMLHttpRequest) {
    try{
      // XMLHttpRequest-Objekt instanziieren
      objRequest = new XMLHttpRequest();
    }catch(e){
      objRequest = false;
    }
  // Falls es sich um einen IE handelt (ActiveX-Schnittstelle verwenden)
  } else if(window.ActiveXObject) {
    try{
      objRequest = new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
      try{
        objRequest = new ActiveXObject("Microsoft.XMLHTTP");
      }catch(e){
        objRequest = false;
      }
    }
  }

  // Falls das Request-Objekt erstellt werden konnte
  if(objRequest) {
    // Listener, der bei Änderung des Fertig-Zustands die gewünschte Funktion aufruft
    objRequest.onreadystatechange = handleRequest;
    objRequest.open("GET", strUrl, true);
    objRequest.send("");
  }
}

function handleRequest() {
  // Nur wenn der Zustand "loaded" ist
  if(objRequest.readyState == 4){
    // Nur wenn der Status "OK" ist
    if(objRequest.status == 200){
      document.getElementById("insert_id").innerHTML = unescape(objRequest.responseText);
      // Beispiel-Event
      document.getElementById("farb_id").onclick = function(event){ handleEvent(event, this);}
    }else{
      alert("Problem beim Request:\n\n" + objRequest.statusText);
    }
  }
}

function handleEvent(objEvt, objThis){
  objEvt = (window.event)? window.event : objEvt;
  objThis.innerHTML = "Bingo!"; objThis.style.color = "#f00";
}
 //-->
</script>

</head>
<body>
<div><button onclick="theRequest('ajax.php');">theRequest()</button></div>
<div id="insert_id"></div>
</body>
</html>
Die zugehörige ajax.php:
Code:
<?php
$strReturn ="<div id=\"outer_id\">[<span id=\"farb_id\">Hier</span>] <span>klicken!</span></div><div id=\"outer_id2\">[<span id=\"farb_id2\">Hier nicht</span>] <span>klicken! (2)</span></div><div id=\"outer_id3\">[<span id=\"farb_id3\">Hier nicht</span>] <span>klicken! (3)</span></div>";

echo(rawurlencode($strReturn));
?>
Ciao
Quaese
 

Neue Beiträge

Zurück