2013-07-19 2 views
1

это мой код:Изменение цвета фона от отдельно элементов из массива (Jquery)

$(document).ready(function() {  
    for(var i = 0 ; i < 8 ; i++){ 
     for(var j = 0 ; j < 8 ; j++){ 
      var $class = getPieceName(board[i][j][0]) 
      $(.$class ????).click(function() { 
       $(this).css('background-color', 'red');  
      }); 
     } 
    }   
}); 

Как вы можете видеть, я хочу, чтобы изменить цвет фона элемента. Нулевые петли нужны для получения элемента в массиве, на который пользователь нажал. Как написать переменную ($ class) как класс?

ответ

2

Если класс является строка, которую вы можете использовать его как это:

$("." + $class).click(function(){ ... }); 
+0

спасибо, это работает! – Reijo

2

Вы можете назвать свою переменную, а затем вставить ее в свой селектор, поскольку строка не является объектом JQ.

var class = getPieceName(board[i][j][0]) 
    $('.' + class).click(function() { 
1

Это кажется, все, что вам нужно, это '.' + $class

0

Это может быть проще применить класс или данных-атрибута все ваши доски штук, как class="board_piece" data-board-x="1" data-board-y="2", а затем привязать обработчик щелчка к селектору для этого:

$('.board_piece').click(function() { $(this).css(...) } 

Вы можете использовать координаты data-board-x и -y, которые я добавил, чтобы получить фактическую позицию внутри платы внутри вашего обработчика кликов.

Смежные вопросы