最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Custom button for fancy box - Stack Overflow

programmeradmin1浏览0评论

I want to add a new button beside slide show, fullscreen, close, etc. and i need to attach a click event to that button so it gives me the src of the image that is currently showed.

I want to add a new button beside slide show, fullscreen, close, etc. and i need to attach a click event to that button so it gives me the src of the image that is currently showed.

Share Improve this question edited Mar 3, 2018 at 7:51 Pezhvak asked Mar 1, 2018 at 20:19 PezhvakPezhvak 10.9k7 gold badges31 silver badges44 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 9

well i googled a few times but didn't find a good solution, i ended up doing this and it works!

what i needed it for was to add a delete button to my fancybox.

to add a new button:

$.fancybox.defaults.btnTpl.delete = '<button data-fancybox-delete class="fancybox-button fancybox-button--delete" title="title of the icon">put your svg icon or whatever here..</button>';

to use the newly created button:

$.fancybox.defaults.buttons = [
        'slideShow',
        'fullScreen',
        'thumbs',
        'delete', // this one is the new button
        'close'];

and to attach click event and get the tag which triggered fancybox (i have data-id on that tag so i can send an xhr request to server to delete that photo)

$('body').on('click', '[data-fancybox-delete]', function(e) {
      var src = $('.fancybox-slide--current .fancybox-image').attr('src'); // src of the currently showing slide
      var idx = $('a[href="'+src+'"]')[0]; // My Tag

});

Another way to get src and element of the current photo (thanks to @Janis in the ments)

$('body').on('click', '[data-fancybox-delete]', function(e) {
      var src = $.fancybox.getInstance().current.src;
      var idx = $.fancybox.getInstance().current.opts.$orig;               
});

hope it helps somebody else as well.

发布评论

评论列表(0)

  1. 暂无评论