Сохранить действие на стороне клиента

124
02 сентября 2019, 11:00

Есть кнопки:

<button onclick="ID('28229')">
<button onclick="ID('849494')">
<button onclick="ID('4040490')">

Есть объекты, которые содержат ид кнопки:

<div id="id28229" style="color:green"></div>
<div id="id849494" style="color:green"></div>
<div id="id4040490" style="color:green"></div>

Есть функция

<script>
#При нажатии на функцию
function ID(id) {
#Мы меняем цвет у элемента на красный
$("#id"+id).css("color","red");
}
</script>

Вопрос: при нажатии на новую кнопку, как вернуть прежнему элементу зеленый цвет текста, ведь в функцию приходит id нового элемента, а значение старого элемента я запомнить не могу

Answer 1

function ID(id) { 
  $(".active").removeClass("active"); 
  $("#id" + id).addClass("active"); 
}
.green { 
  color: green; 
} 
 
.active { 
  color: red; 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 
<button onclick="ID('28229')">A</button> 
<button onclick="ID('849494')">B</button> 
<button onclick="ID('4040490')">C</button> 
 
<div id="id28229" class="green">AAA</div> 
<div id="id849494" class="green">BBB</div> 
<div id="id4040490" class="green">CCC</div>

Answer 2

Вот так мы можем запомнить!

var color; 
var id='28229'; //любой существующий id 
function ID(id) { 
color = $("#id"+id).css("color"); 
if (this.id!=id) { 
  $("#id"+this.id).css("color",color); 
  this.id=id; 
  } 
$("#id"+id).css("color","red"); 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 
<button onclick="ID('28229')">Кнопка1</button> 
<button onclick="ID('849494')">Кнопка2</button> 
<button onclick="ID('4040490')">Кнопка3</button> 
   
<div id="id28229" style="color:green">Текст</div> 
<div id="id849494" style="color:green">Ещё</div> 
<div id="id4040490" style="color:green">Текст</div>

READ ALSO
Помогите решением простого вопроса по js

Помогите решением простого вопроса по js

Пытаюсь сделать выборочные ссылки потом подключить к ним аякс есть стандартный скрипт работает от части но если кликнуть на link1 и обратно...

94
Как написать подобное окно для ввода текста,в котором как в ворде можно будет выбирать тип шрифта

Как написать подобное окно для ввода текста,в котором как в ворде можно будет выбирать тип шрифта

На подобии вот этого,можно ли это написать на чистом js или нужно использовать что то большее?

120
Не срабатывает цикл for при обходе массива

Не срабатывает цикл for при обходе массива

не могу понять в чем проблемаСмотрим простой код:

114
Как избавиться от повторной работы кода при загрузке страниц Ajax?

Как избавиться от повторной работы кода при загрузке страниц Ajax?

Дело в том, что подгружаю страницы через ajax, просто вставив тег скрипт на загружаемую страницу(таких страниц много), и первая работает нормально,...

116