Hallo!
Ich habe hier ein kleines Problem mit jQuery, wobei manche Parameter nicht an die Methoden weitergegeben werden ...
index.htm
P.S. Das JSON-Object enhält noch Daten aus settings.js
Meine Überlegung war, dass ich mit get(0) das Object <canvas> hole und gleichzeitig noch das Plugin init() mit dem Parameter object übergebe. Dazu die penalty.js.
penalty.js
Bei init() greife ich auf das HTML-Object <canvas> mit this zu und versuche zu prüfen, ob das Object richtig übergeben wurde und ob der Browser HTML5-Canvas überhaupt unterstützt. Ferner, wenn es klappt, wird die draw Methode auf die übergebene Objects angewendet.
Aber dies will überhaupt nicht funktionieren - es wird die Fehlermeldung "Canvas could not get initialised!" ausgegeben und lässt darauf schließen, dass die Referenzen nicht stimmen ... aber was mache ich falsch? Wie macht man das denn richtig? Vielen Dank schonmal!
Ich habe hier ein kleines Problem mit jQuery, wobei manche Parameter nicht an die Methoden weitergegeben werden ...
index.htm
HTML:
[...]
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="settings.js"></script>
<script type="text/javascript" src="penalty.js"></script>
<script type="text/javascript">
<!--
var object = {
"background": {"color": color.background, "format": format.background},
"goal": {"color": color.goal, "format": format.goal},
"goalkeeper": {"color": color.goalkeeper, "format": format.goalkeeper},
"ball": {"color": color.ball, "format": format.ball}
};
try {
$(document).ready(function(){
$('#field').get(0).init(object);
});
} catch(exception) {
$.log(exception);
}
-->
</script>
<body>
<canvas id="field" width="500" height="500"></canvas>
[...]
Meine Überlegung war, dass ich mit get(0) das Object <canvas> hole und gleichzeitig noch das Plugin init() mit dem Parameter object übergebe. Dazu die penalty.js.
penalty.js
HTML:
(function ($) {
$.fn.init = function (object) {
if (this.getContext) {
var ctx = this.getContext('2d');
// Draw all the objects and check if the execution was successful.
if (!draw(object)) {
throw new Error("Objects could not be drawn!");
}
} else {
throw new Error("Canvas could not get initialised!");
}
};
$.log = function (message) {
if (window.console) {
console.debug(message);
} else {
alert(message);
}
};
})(jQuery);
Bei init() greife ich auf das HTML-Object <canvas> mit this zu und versuche zu prüfen, ob das Object richtig übergeben wurde und ob der Browser HTML5-Canvas überhaupt unterstützt. Ferner, wenn es klappt, wird die draw Methode auf die übergebene Objects angewendet.
Aber dies will überhaupt nicht funktionieren - es wird die Fehlermeldung "Canvas could not get initialised!" ausgegeben und lässt darauf schließen, dass die Referenzen nicht stimmen ... aber was mache ich falsch? Wie macht man das denn richtig? Vielen Dank schonmal!