JavaScript onclick wird nicht ausgeführt

HamburgerJungx

Well-known member
ID: 465838
L
28 April 2006
848
39
Hi Leute,
ich habe da ein kleines Problem. Hier erstmal der Code:

Code:
function show() {
 var ausgabe = "";
 var D = System.Gadget.Settings.read("var");
 var DA = D.split("#");
 for(var x = 0; x < DA.length; x++) {
  ausgabe += DA[x];
 }
 ausgabe += " <a href='#' onclick='sendDaten(DA[0]);'>ausklappen</a>";
 document.getElementById("inhalt").innerHTML=ausgabe;
}
function sendDaten(efd) {
 document.getElementById("allow").innerHTML=efd;
}
im body-Bereich sieht es so aus:
Code:
<body onload="show();">
<div id="inhalt">
<div id="allow"></div>
</body>

Wenn ich das richtig sehe, dann müsste ja bei einem Klick auf "ausklappen" der "allow"-DIV mit dem Wort welches in der Variable "efd" drinsteht gefüllt werden. Leider passiert das nicht. Hab ich da etwas übersehen, bzw. vll hab ich auch grundlegendes verkehrt gemacht und sehe es einfach nicht.
Ich bin für hilfreiche Kommentare dankbar.
Gruß
 
Ich bezweifle, dass das so funktioniert - was deine Beobachtung auch bestätigt.

Dadurch, dass du so komisch HTML-Markup in Strings zusammenbaust und in innerHTML wirft, hast du wohl keine "Bedeutung" mehr an der Variablen, da der Kontext längst nicht mehr stimmt.

Schon mal jQuery in Erwägung gezogen? Da sieht das alles hübscher aus und is auch wesentlich einfacher.
 
Hi,
an jQuery hatte ich in der Tat schonmal gedacht, aber da der Code eben nicht für eine Internetseite ist, sondern für ein Windows Gadget, weiß ich nicht ob das überhaupt funktioniert. Ich fange ja gerade erst an mit Javascript.
Wie würde sowas mit jQuery aussehen, bzw. ist überhaupt klargeworden was ich mit der Funktion erreichen möchte?
Gruß
 
Du willst aus ner Systemvariable aus rauslesen und in einen Link packen.

So in der Art:
HTML:
<body>
<div><a href="#" id="allowLink">ausklappen</a></div>
<div id="allow"></div>
<script type="text/javascript">
$(document).ready(function() {
  var output = ....;
  $('#allowLink').click(function() {
    $('#allow').text(output);
  });
});
</script>
</body>
Ich glaube nicht, dass es da Einschränkungen gibt, weil das ein Gadget is. JavaScript is JavaScript.
 
Das sieht ja viel angenehmer aus. Dann schonmal Danke für den Hinweis zu jQuery. Ich werde mir dann das mal zu Gemüte führen und Danke auch für dein Beispielcode.