Script in von Ajax geladenem Content ausführen

  • Hallo, wie bekomme ich hin, das Script


    a) auf Content anspricht der von Ajax geladen wurde >> $(".klasse").click(function() daruf springts net an..?
    b) was in diesem (Content) ist, ausgeführt wird. >> $(".klasse").click(function() geht genauso wenig?


    Das Element mit klasse liegt in dem Content der von Ajax geladen wurde.

  • Häää ich vertsehe nicht ganz was du meinst :o



    Also

    JavaScript
    document.getElementById("ajax_in").innerHTML=xmlhttp.responseText;


    Da wird das Document eingefügt.


    in responseText ist z.B. xyz.html
    darin ist

    HTML
    <script>
     $(".klasse").click(function(){
     alert("mich geklickt :)");
     }
    function machwas(){
     alert("mich auch geklickt :)");
    }
    </script>
    <div class="klasse">Klick mich</div>
    <div onclick="machwas()">Klick mich auch</div>


    Ich bekomme nur machwas() is not defined raus wenn ich klicke, auf das andere Element reagiert er garnicht.

  • Worum gehts eigtl?
    Willst Du content plus scripte laden, also "random" code, in dem auch mal ein script vorkommen kann,
    ODER
    willst du nur scripte nachladen?


    Zum ersten: wie basi sagte - eval (evtl nachgeladenen code auf scripte durchsuchen und eval ...)
    Zum zweiten: Du könntest reine scripte nachladen lassen. mit ner readystae dann prüfen, ob fertig geladen.
    hier mal n bsp wie ich das gelöst hatte (wenn es denn zu dem was Du vorhast passt)

  • Danke, ich will random Code laden in dem aber JScript ist ^^
    Werde wohl mit Eval lösen :)
    EDIT: oder auch nicht.
    Bei mir kommt eval is not a function :(
    Aber wenn in der File ein php echo o.ä. drinn ist, wird der inhalt nicht geladen, und ein syntaxerror kommt raus.
    Andernfals wird gleich abgebrochen.
    eval ist nicht richtig :(


    So, die Lösung ist nach Script Tags zu suchen, und deren Inhalt wieder in ein Script Tag zu platzieren:

  • oh, naja ... da ichs auch gerade probiert hab poste ichs trotzdem mal
    (ich würde es trotzdem nicht empfehlen von irgendwelchen(?) quellen JS auszuführen)

  • Naja ich habe die index.php , wenn ich jetzt auf Inhalt bearbeiten klicke lade ich mit ajax die Seite auf der das bearbeitungs- Tool liegt, was allerdings JS verwendet, jetzt möchte ich aber nicht dasJS dafür immer geladen haben, sondern nur wenn man wirklich Inhalt bearbeiten will, verstehst? :D


    Und ouhm. Aber in FF und Webkit(Safari) gehts bei mir :o

  • Bei nachgeladenem Content musst du wie folgt vorgehen:


    JavaScript
    $(document).on("click", "SELEKTOR (wie von jQuery bekannt)", function(){
      // Tu irgendwas
    });


    Die bekanntere Variante


    JavaScript
    $("element").click();


    funktioniert meist nicht.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!