这是支持论坛的后续行动(感谢你'RoadRash'的初步帮助!)。
我有一个高级画廊,我试图使用以下javascript / jquery进行推进。画廊里面有大约70张图片。
function changeImage()
{
var theValue = $('#lstOptions2').val();
$('#thumb' + theValue).trigger('click');
}
这种方法很有效,但在10或11次函数调用后,图像不再前进。使用chrome调试器我无法确定发生了什么。
我的问题是:
如果没有快速明显的答案,我将很乐意发布测试链接。
答案 0 :(得分:1)
我可以从开发图库中看到您发送给我的是您正在使用页面内的图库,除了纵向缩略图中的常规缩略图之外,您还可以使用下拉列表更改图像。
这是我们常规的页内展示图:http://highslide.com/examples/gallery-in-page.html 与所有Highslide画廊一样,这个画廊漂浮在页面顶部,但页面内的画廊有代码可以防止它被关闭。
这是我在旧论坛为您创建的演示库:http://jsfiddle.net/roadrash/y5nZA/
请注意,每次从下拉列表中选择新图像时,图库都会从onchange
关闭。
onchange="document.getElementById(this.options[this.selectedIndex].value).onclick(); hs.close()"
为了能够从onchange
关闭图库,我们必须在高滑动设置中删除此部分:
// Under no circumstances should the static popup be closed
hs.Expander.prototype.onBeforeClose = function() {
if (/in-page/.test(this.wrapper.className)) return false;
}
并添加此项,因为Highslide也可以从ESC键关闭 - 我们要阻止它:
// Prevent to close the gallery from ESC key
hs.onKeyDown = function (sender, e) {
if( e.keyCode == 27 ) return false;
};
您可能没有注意到常规页内图库和我的演示库之间的这些重要差异。您的开发库的问题在于,每次在下拉列表中选择新图像时,您实际上都会打开一个新图库。你可以从Thumbtrip缩略图下方的小箭头看到这个;它应该永远不会超过一个箭头,但在您的图库中,每次我们在下拉列表中选择新图像时都会添加一个新箭头。
我已经创建了一个类似于您的开发库的jsFiddle:http://jsfiddle.net/7tSBE/这里更容易看到,当使用下拉列表打开新图像时,画廊堆叠在彼此之上,因为我是图像使用有不同的尺寸。 (此演示没有像在开发库中那样从onImageClick打开顶层图库。)
我无法在这里放置您需要的所有代码,因此我创建了一个与您的开发库非常相似的新演示库(顶部库从onImageClick打开)。 HTML标记与您的标记相同。重要的变化在Highslide设置中,并且除了我上面提到的更改之外还有一些更改。 http://jsfiddle.net/roadrash/y5nZA/1/
这是您需要在代码中添加hs.close();
的部分(ChangeImage();
之后的行)。此代码在我的演示页面中看起来不一样。
function SetImageSwatchEvents() {
$('#lstOptions').bind('change', function () {
SetImageSwatches(1);
});
$('#lstOptions2').bind('change', function () {
SetImageSwatches(2);
ChangeImage();
hs.close();
});
}