2016-12-18 4 views
3

Ich versuche, ein 2-Spieler-Dame-Spiel für meine Hochschule zu entwickeln, aber ich bin fest auf den Index der 2D-Array, wenn ich auf das Stück klicken.Erhalten Index auf klicken mit jquery

unterteilt ich meine HTML-Code in:

  • Tabelle - das Spielbrett
  • row - jede Reihe die Höhe des Arrays ist
  • Zelle - jede Zelle ist ein Stück, und die Breite der Array

Dann gefasst ich ein Standard-Array, das Spiel zu starten:

var board = [ 
    [0, 1, 0, 1, 0, 1, 0, 1], 
    [1, 0, 1, 0, 1, 0, 1, 0], 
    [0, 1, 0, 1, 0, 1, 0, 1], 
    [0, 0, 0, 0, 0, 0, 0, 0], 
    [0, 0, 0, 0, 0, 0, 0, 0], 
    [2, 0, 2, 0, 2, 0, 2, 0], 
    [0, 2, 0, 2, 0, 2, 0, 2], 
    [2, 0, 2, 0, 2, 0, 2, 0], 
    ]; 

Wo das: - 0 - leere Zelle - 1 - Spieler 1 Stück - 2 - Spieler 2 Stück

die Position, die ich mit diesem Code

function getPosition() { 
    $('.row').on('click', function() { 
    console.log($('.row').index(this)); 
    }); 
    $('.cell').on('click', function() { 
    console.log($('.cell').index(this)); 
    }); 
} 

die Höhe Array Holen Sie mich zu bekommen Die Position, die zwischen 0 und 7 liegen sollte, ist ok, aber die Zelle aus der Zeile sollte auch zwischen 0 und 7 liegen, aber ich benutze dies von 0 bis 63. Mit diesen Parametern habe ich keine Ahnung, wie ich die nächsten Vergleiche starten soll das Spiel. Hier

ist der Code von codepen http://codepen.io/michaelthompson/pen/jVdrav

+0

Änderung an 'console.log ($ ('. cell', this.parentElement) .index (this));' um den Index innerhalb der aktuellen Zeile –

+1

oder '$ ('. cell') zu bekommen. index (this)% 8' –

Antwort

4

In jedem Fall Sie einfach $(this).index() verwenden können, die den Index innerhalb des Elements Geschwister zurück

Aber da auf eine Zeile klicken, bedeutet immer eine Zelle klicken könnten Sie kombinieren sie und tun

$('.cell').on('click', function() { 
    var $cell = $(this), 
     columnIndex = $cell.index(), 
     rowIndex = $cell.parent().index(); 
}); 

Was $('.cell').index(this) ist doi ng nimmt die gesamte Sammlung der Klasse innerhalb der Seite und deshalb erhalten Sie 0-63

+0

Hatte Ihnen diese Antwort geholfen? Wenn ja, zögern Sie nicht, es zu akzeptieren – charlietfl