Magnific popup在Datatables的第二页上不起作用

时间:2016-03-14 20:41:39

标签: javascript jquery datatables magnific-popup

我创建了一个数据表,并将一个图像列添加到数据表中。当我点击图像时,我想在弹出窗口打开图像。它适用于数据表的第一页,但是当我传递到第二页时,它不起作用。此外,我把alert()测试第二页事件和alert()工作,但弹出窗口没有。

请查看我的摘要: https://jsfiddle.net/f08qdeq2/20/

我如何解决这个问题,任何想法?谢谢

 $(document).ready(function() {
  var table = $('#datatable').dataTable({
    aLengthMenu: [
      [1, 2],
      [1, 2]
    ],
    iDisplayLength: 1
  });
});

$(this.document).ready(function() {

  $('.image-popup').magnificPopup({
    type: 'image',
    closeOnContentClick: true,
    closeBtnInside: false,
    fixedContentPos: true,

    image: {
      verticalFit: true
    },
    zoom: {
      enabled: true,
      duration: 300 // don't foget to change the duration also in CSS
    },

  });

});

$(document).on('click', '.image-popup', function() {

  alert('You Clicked Image');

  //$('.image-popup-no-margins').magnificPopup({
  //Some Working code here
   //});
})

2 个答案:

答案 0 :(得分:2)

您应该使用fnDrawCallback来初始化弹出窗口。试试这个......

$(document).ready(function() {


var table = $('#datatable').dataTable({
aLengthMenu: [
  [1, 2],
  [1, 2]
],
iDisplayLength: 1,
"fnDrawCallback": function () {
    $('.image-popup').magnificPopup({
type: 'image',
closeOnContentClick: true,
closeBtnInside: false,
fixedContentPos: true,

image: {
  verticalFit: true
},
zoom: {
  enabled: true,
  duration: 300 // don't foget to change the duration also in CSS
},

});
}
});
});


$(document).on('click', '.image-popup', function() {

     alert('You Clicked Image');
})

结果:https://jsfiddle.net/cmedina/f08qdeq2/21/

答案 1 :(得分:0)

只需添加它即可用于正常的点击事件,基于此您可以对模型(弹出)进行任何操作。

$(document).on('click', '.image-popup', function() { 
     alert('You Clicked Image');
})