【问题标题】:target img in lightgallery.js slider在 lightgallery.js 滑块中定位 img
【发布时间】:2018-05-17 17:28:09
【问题描述】:

有没有办法定位lightgallery.js滑块中显示的img?

下面这个JS有3个没能得到一个简单的console.log();:

var $lg = $('#mosaic');
$lg.lightGallery({thumbnail: false, addClass: 'imgGallery'});

$('.imgGallery img').click(function() {
     console.log('click'); // fail
});
$('img.lg-object.lg-image').click(function() {
     console.log('click'); // fail
});
$('div.lg-img-wrap img').click(function() {
     console.log('click'); // fail
});

JSFIDDLE

【问题讨论】:

    标签: javascript jquery lightgallery


    【解决方案1】:

    具有点击事件的img 元素不在.imgGallery div 中。它们实际上在#mosaic 内部。如果您将该选择器更改为$('#mosaic img'),您就可以使用该选择器了。

    至于其他两个,这些元素是动态创建的,因此在您尝试绑定点击事件时它们并不存在。您想要的是单击委托,以便将单击事件绑定到外部元素,但在子元素上拦截它。因此,为所有内容创建一个包装器(或者如果不可能,则绑定到主体)

    $('body').click('img.lg-object.lg-image', function(e) {
     console.log('click'); // success
     console.log(this); // body (element to which the event is bound)
     console.log(e.target); // img.lg-object.lg-image (element that received the click)
    });
    

    【讨论】:

    • 嗯,好的,我明白了,谢谢。我们如何获得图像源? var imgSrc = $(this).attr('src');未定义
    • 我会更新答案以反映这一点,但function(e) { e.target.attr('src') }
    • 如何只保存在变量中单击的“src”?
    • 没关系,谢谢你的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-03
    • 1970-01-01
    • 2020-06-20
    • 2012-08-08
    • 1970-01-01
    相关资源
    最近更新 更多