<script>
var div = { txt : "Hallo!", btn : $("<button>1</button>") } $("body").append(div.btn); $("button").bind("click", function(){ alert("hier sollte -div.txt- ausgegeben werden"); }); </script>
Willst du wirklich JEDEM button-Element diese Funktion für das click-Event zuweisen?
Wenn du sie nur dem erzeugten button-Element zuweisen willst:
~~~javascript
div.btn.bind("click", function(){
alert("hier sollte -div.txt- ausgegeben werden");
});
Und zu deiner Frage:
'div' sollte global sein also alert(div.txt);
Und eine "sauberere" Erzeugung des button-Elements wäre:
var div = {
txt : "Hallo!",
btn : $(document.createElement("button"));
}
An sich ließe sich auch der Text als Attribut vom button-Element speichern, dann wird die Sache noch simpler und du brauchst keine globale Variable mehr:
$(body).append(
$(document.createElement("button"))
.attr({"data-message":"Hallo!"})
.append(document.createTextNode("1"))
.click(function(){
alert($(this).attr("data-message"));
});
);
(Das ist vielleicht mehr Text, aber das button-Element ist nun völlig unabhängig.)
MfG
bubble