Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как подставить имя класса под массив? (https://javascript.ru/forum/misc/78854-kak-podstavit-imya-klassa-pod-massiv.html)

drkrol 14.11.2019 00:02

Как подставить имя класса под массив?
 
Здравствуйте. Возможно вопрос в заголовке указан не верно, но я чётко сформулировать вопрос не могу... У меня просто не работает так, как я бы хотел(...

Ситуация такая. Есть массив с информацией о положениях X:Y. Выглядит это вот так:
var firstbox = ["-16","13"]
var secondbox = ["-10","11"]
...

В html у объектов у меня по 2 класса:
<div class="box firstbox">...</div>
<div class="box secondbox">...</div>

Есть анимация этих блоков:
$('.box').mousemove(function(event){
  gsap.to($(this), 1, {
    x:mineclass[0],
    y:mineclass[1],
  });
});

Я думал, что если в функции анимации прописать, что
var mineclass = this.classList[1];
console.log(mineclass) // вернёт имя класса.

то тогда можно будет обратиться к имени класса, как к массиву:
mineclass[0] // по логике тоже самое secondbox[0]

и у меня будет всё работать, но, как вы уже поняли, не работает у меня них*ена

Что в моём случае можно сделать? Как сделать, чтобы я мог зная класс подцепиться к массиву?

Malleys 14.11.2019 00:27

Цитата:

Сообщение от drkrol
mineclass[0] // по логике тоже самое secondbox[0]

По какой логике? На самом деле... "secondbox"[0]

Вам нужно переделать так...

var boxes = {
	firstbox: ["-16","13"],
	secondbox: ["-10","11"]
};


то можно так...
var mineclass = this.classList[1];
console.log(mineclass) // вернёт имя класса.

var box = boxes[mineclass]; // выберет нужный массив из boxes
// тут можно устроить проверку, ведь может и не быть класса,
// который вы только добавили в HTML, но в скрипте ещё не добавили массив
var x = box[0];
var y = box[1];


Часовой пояс GMT +3, время: 07:00.