0

我正在使用流沙过滤类别和 Superbox ( http://toddmotto.com/labs/superbox/ ) 在下拉列表中显示基于高级插件 Royal Slider 的画廊。

http://bvh.delineamultimedia.com/?page_id=2

这个文件中 _animateTo:function 周围的 Royal Slider 似乎存在问题... http://bvh.delineamultimedia.com/wp-content/plugins/new-royalslider/lib/royalslider/jquery.royalslider.js ?ver=3.0.93在第 1825 行附近。这导致滑块在 Superbox 下拉功能内部时无法正常工作。当我单击 Royal Slider 上的下一个按钮时,它似乎不想转到下一个图像,直到我关闭 Superbox 并再次打开它。然后是下一个图像出现的时候。

在此页面上... http://bvh.delineamultimedia.com/?page_id=13我似乎对 Royal Slider 没有问题,这就是为什么我认为 Superbox 和 Royal Slider javascript 存在冲突的原因。此外,在此页面上... http://bvh.delineamultimedia.com/?page_id=12 Superbox 可以完美地处理静态图像。

我想以某种方式在同一个地方声明“如果有画廊显示它 - 否则显示静态图像”。

我也觉得我在这里修改了我的代码。http://bvh.delineamultimedia.com/wp-content/themes/bvh/js/portfolio/superbox.js这不是最好的,因为我在这里和那里猜测一下让它工作。

我一直在尝试学习如何调试 JS,但老实说我有点迷茫。我认为这个问题发生在 _animateTo:funtion 的原因是因为控制台没有在 _stopAnimation 周围触发。任何人都可以帮助解释为什么会发生这种情况以及调试此问题的好方法。此刻我感到有些不知所措。

要查看问题:访问http://bvh.delineamultimedia.com/?page_id=2并单击第一张图片,将出现一个下拉菜单,您将在其中看到图库。如果单击下一个箭头,它不会转到下一个图像。如果您关闭 Superbox 下拉菜单并重新单击第一个图像以查看 Superbox 下拉菜单,您将看到图像移动到下一个图像,但只有在您单击下一个箭头后关闭并重新打开 superbox 之后。

我希望这是有道理的。非常感谢!

4

1 回答 1

1

我检查了您的 Superbox.js 中的代码。问题是您正在克隆元素而不是附加它。在这种情况下,皇家滑块。这条线是罪魁祸首,它创建了两个不同的“滑块”。只有一个在工作,尽管它被隐藏了。

if (sliderData.length > 0) { // show the slider if there is one
    superbox.append(sliderData.clone(true)); 

}

只需删除 .clone() 方法就可以了。

修复关闭回调期间元素消失的问题。在此处替换此行:

superbox.find('.royalSlider').remove(); // remove the slider from previous events

对此:

superbox.find('.royalSlider').appendTo($(this));

总而言之,所有这些都是在触发时将滑块从列表项元素移动到超级框,并在关闭时将其放回原处。

于 2013-03-28T22:43:05.950 回答