bubble: Auf Objekt Attribut zugreifen

Beitrag lesen

	<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