Hi,
Ich nutze NodeJs, Express und Handlebars. Am Client nehme ich noch Jquery dazu.
Ich lasse mir ein Grid von Zellen am Server zusammenbauen. Dieses Array schicke ich dann beim Laden der Seite an den Client. Dabei bekommt jede Zelle die Infos PositionX und PositionY. Das Data Attribut setze ich im Template, damit ich im Client Script die Position über das Attribut auslesen kann.
Das Attribut ist aber undefiniert
Also erstmal baue ich das Template
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
|
{{#each map}}
<div class="row">
{{#each this}}
<!-- <p>{{this.x}}</p> gibt einen richtigen Wert aus -->
<!-- <p>{{this.y}}</p> gibt einen richtigen Wert aus -->
<div class="cell" data-xPos={{this.x}} data-yPos={{this.y}}></div>
{{/each}}
</div>
{{/each}}
|
und am Client führe ich diesen Code aus
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
$(document).ready(function() {
var cells = $(".cell");
$(cells).each(function(i, cell) {
var currentCell = $(cell);
var x = currentCell.data("xPos");
var y = currentCell.data("yPos");
currentCell.click(function() {
console.log(x + " | " + y); // TEST
});
});
});
|
Dabei steht dann in der Console, nach dem Klick auf eine Zelle, folgendes:
undefined | undefined
Das Attribut kann also nicht richtig ausgelesen werden. Der DOM sieht aber eigentlich in Ordnung aus.