我似乎遇到了使用Magnific然后告诉它以编程方式转到提供的索引中断的问题,但只有在移动到第0个元素然后返回时才会出现。
我在这里创建了一个codepen - 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似乎将提供的数组/对象转换为具有更多属性的项目对象,并在数据对象下提供。
有没有人遇到过这种问题或知道解决方法?
[编辑]
这似乎与这样一个事实有关:因为在打开模态时数据的变化是多么大,所以需要以不同的方式访问它,我尝试改变一些条件,但仍然没有快乐= /
答案 0 :(得分:0)
您的elSlug
变量和slug
属性不一致。例如,Sea Salt&醋,elSlug
设置为sea-salt-vinegar
,但将其与sea-salt-&-vinegar
进行比较,因此不能正确匹配。
答案 1 :(得分:0)
通过朋友的帮助解决了我的问题!
初始化模态时,对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
}
}