使用jQuery按钮触发SimpleLightBox打开失败,报错gallery.open不是函数
问题原因及解决方法
你直接把$('.gallery a').simpleLightbox()的返回值赋值给gallery变量,这个返回的是jQuery对象,而非SimpleLightBox的实例对象,所以调用gallery.open()会触发「不是函数」的报错。
正确初始化方式
要获取SimpleLightBox的实例,需在初始化后通过jQuery的.data()方法提取:
// 初始化并获取实例 var gallery = $('.gallery a').simpleLightbox().data('simpleLightbox');
修正后的触发代码
之后再调用open()方法即可正常触发画廊:
$(document).on('click', '.view-gallery', function (event) { // 不传参默认打开第一张,传入索引值可指定打开对应图片(索引从0开始) gallery.open(0); });
额外注意事项
- 若画廊元素是动态生成的,务必保证初始化代码在元素渲染完成后执行,否则无法正确获取实例。
open()方法支持传入索引参数,精准控制打开画廊中的某一张图片。
内容的提问来源于stack exchange,提问作者jeynon
相关产品推荐
相关产品推荐

