Переменные js и атрибуты data-*

211
01 мая 2018, 01:03

Имеются кнопки. Имеются переменные, каждая из которых соответсвует каждой кнопке - она принимает значение true при нажатии, остальные принимают false.

Для каждого события писать то, что там уже есть слишком громоздско, тем более в оригинале кнопок больше, чем 3. Для автоматизации этого пришло на ум ввести каждой кноке по data-*, совпадающей с именем переменной. А вот как технически найти "близнец" среди переменной, и установить ему true (например one и one ), ПРИ ЭТОМ остальным (в данном случе two и three) присвоить false (если до нажатия 1 были другие нажатия)(возможно, для второго надо заводить массив переменных)

Если с data-* идея плохая, готова к другим вариантам https://jsfiddle.net/Nata_Hamster/tbL77s59/ Заранее спасибо

$('#btn-1').click(function() {
    var name = this.dataset.name; 
});
Answer 1

var data = { 
  one: false, 
  two: false, 
  three: false 
}; 
console.log(data); 
 
$('.buttons').click(function() { 
  for (var key in data) { 
    data[key] = false; 
  } 
  data[this.dataset.name] = true; 
  console.log(data); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<button class="buttons" style="display:inline;" data-name="one">1</button> 
<button class="buttons" style="display:inline;" data-name="two">2</button> 
<button class="buttons" style="display:inline;" data-name="three">3</button>

READ ALSO
Как передать в callback delay в функцию debounce?

Как передать в callback delay в функцию debounce?

Как передать в callback delay ? Так не работает

167
Проблемы с работой функции на JS

Проблемы с работой функции на JS

Появилась такая проблема

198
Нажатие кнопки в Selenium - Java

Нажатие кнопки в Selenium - Java

Есть код на странице кнопок:

196
Взаимодействие с div

Взаимодействие с div

Как можно двигать блок div(box) с помощью клавиш вверх, вниз, право, влево с использованием js(keyCode)?

178