Проблема в том, что вы проверяете значение переменной, а затем назначаете обработчик клика.Поскольку colorCounter
в начале имеет значение 0, создается только обработчик одного клика.
Вы должны проверить значение colorCounter
из внутри обработчика щелчка .
Пример (я также переместил цвета в объект образца и использовалстроковые значения для colorCounter ... который, вероятно, теперь следует переименовать ^ _ ^):
var currentColor = 'green';
// object with color swatches
var fills = {
green: { fillColor: '00ff00', strokeColor:'000000'},
red: { fillColor: 'ff0000', strokeColor:'000000'}
}
$('map area').click(function(e){
// use swatch object to higlight
$('#human-body').maphilight(fills[currentColor]);
// switch out the colors
if (currentColor == 'green') {
currentColor = 'red';
} else {
currentColor = 'green';
}
});
Кроме того, вы используете назначение вместо сравнения по ошибке.
Следующая строка просто присвоит 0 для colorCounter
if (colourCounter = 0) {
...
}
То же самое происходит, когда вы проверяете, равно ли значение 1.
Сравнение должнобыть
if (colourCounter == 0) {
...
}
или еще лучше
if (colourCounter === 0) {
...
}
То же самое для строки с if (colourCounter = 1)
Два знака равенства ==
используются для сравнения значений, где ===
сравнивает значение и тип, то есть он более строгий.