Великолепное всплывающее окно с динамическим контентом

Кажется, у меня возникла проблема, когда я использовал Magnific, а затем сказал ему программно перейти к предоставленным разрывам индекса, но только при переходе к нулевому элементу, а затем обратно.

Я создал кодовую ручку здесь - codepen.

Это код, который кажется проблемой, особенно с методом goTo().

if (this.items[i].slug === elSlug)
{
    this.goTo(i);
}
else
{
    // should log every other index other than the one we're looking for
    console.log(i);
}

Я также заметил, что magnific, похоже, преобразует предоставленный массив/объекты в объект элементов с большим количеством свойств и предоставленных под объектом данных.

У кого-нибудь была такая проблема или кто-нибудь знает способ обойти это?

[редактировать]

Кажется, это как-то связано с тем, что из-за того, как великолепно преобразует данные (после) открытия модального окна, к ним нужно обращаться по-разному, я пытался изменить некоторые условные выражения, но все равно без радости =/


person RustyCollins    schedule 20.07.2015    source источник
comment
Ммм, странно, если вы не сделаете здесь строгое сравнение if (this.items[i].slug === elSlug), оно, по крайней мере, зарегистрирует все остальные индексы, как вы упомянули в своем блоке комментариев.   -  person DavidDomain    schedule 21.07.2015


Ответы (2)


Ваша переменная elSlug и свойство slug несовместимы. Например, для морской соли и уксуса elSlug установлено на sea-salt-vinegar, но оно сравнивается с sea-salt-&-vinegar, поэтому оно не совпадает должным образом.

person Aweary    schedule 20.07.2015
comment
Ах да, мой плохой, я обновил это, но забыл вставить в ручку, обновил, бюст все еще имеет проблемы. - person RustyCollins; 21.07.2015

Решил мою проблему с небольшой помощью друга!

Оказывается, массив изменяет массив items[] при инициализации модального окна.

Таким образом, у нас есть не просто массив чистых объектов данных, у нас есть объект с добавленными в него дополнительными данными, а также Magnfic, помещающий предоставленные нами данные в объект data.

Этот чек привел меня туда, куда мне нужно было, надеюсь, он поможет кому-то еще в будущем!

for (i ; i < len ; i++) {
    if (this.items[i].slug === elSlug || (this.items[i].data && this.items[i].data.slug === elSlug))
    {
        this.goTo(i);
        break;
    } else{
        // some kind of problem, do other stuff
    }
}
person RustyCollins    schedule 21.07.2015