Ajax加载两次lightbox .off()不工作Jquery

时间:2018-03-14 13:24:09

标签: jquery

我有这个问题,只要我点击一个类ShowLB我希望它出现一个LightBox,我在其中创建一个新元素#Content我加载帖子....一旦我想要它关闭灯箱我点击课程HideLB来完成它,而它确实如此。

JQUERY 初次调用函数“在Lightbox上显示结果”

$('.ShowLB').on('click', function() {

  var id_post = $(this).data('id_post');

  //show lightbox, create container
  $(".LightBoxPosts").show();
  $(".Title").after('<ul id=Container></ul>');
  $(document).ShowPosts(id_post);
});

//hide lighbox, remove container
$('.HideLB').on('click', function() {
  $("#Container").remove();
  $(".LightBoxPosts").hide();
});

HTML

<div class="ShowLB" data-id_post="5">[SHOW LIGHTBOX]</div>

<div id="LightBoxPosts">
  <div class="HideLB">[X]</div>
  <div class="Title">[ALL POSTS]</div>
  <div class="ShowMore">[SHOW MORE]</div>
</div>

功能灯箱出现后,帖子会成功加载到#Container

$(".ShowMore").hide();
jQuery.fn.ShowPosts = function(id_post) {

  var loading = false;
  var track_load = 0;
  var total_groups = 5;

  $(".ShowMore").show();
  $(".ShowMore").on('click', function() {


    if (track_load <= (total_groups - 1) && loading == false) {
      alert(track_load);

      $.post("posts.php", {
          'group_no': track_load
        },
        function(data) {
          loading = true;
          $(".Container").append(data);

          track_load++;
          loading = false;

        });
    }    
  });    
}

问题

一开始,当第一次点击.ShowMore按钮时,它会正常检索帖子。 当我点击HideLB关闭灯箱时出现问题。容器会被删除,只要我再次点击ShowLB然后.ShowMoreShowPosts()函数就会加载之前调用的内容。这意味着点击track_load按钮后警报.ShowMore出现两次...然后从我第一次打开灯箱时加载两次新内容和内容。是否有意义?我不能继续解决这个问题。

0 个答案:

没有答案