【问题标题】:V5 Modal & jQuery: the issue in spinner while content is loadedV5 Modal & jQuery:加载内容时微调器中的问题
【发布时间】:2021-09-27 23:39:49
【问题描述】:

我正在尝试在使用 bootstrap v5 modaljQuery 加载模式内容时显示微调器发起者我创建了一个示例,但它存在一些问题。

当我关闭它仅在第一次显示的模式时,微调器发起者不再显示。

$(window).on("load", function() {
  if ($(".modal").length) {
    $(".modal").modal("show");
    
    $(".modal").on("shown.bs.modal", function(e) {
      e.preventDefault();
      if ($(".spinner").length) {
        $(".spinner").delay(3000).fadeOut(500, function() {
          $(this).remove();
        });
      }
    });
    
    $(document).on("click", ".btn", function(e) {
      $(".modal").on("shown.bs.modal", function(e) {
        e.preventDefault();
        if ($(".spinner").length) {
          $(".spinner").delay(3000).fadeOut(500);
        }
      });
      
      $(".modal").on("hidden.bs.modal", function(e) {
        e.preventDefault();
        if ($(".spinner").length) {
          $(".spinner").delay(3000).fadeOut(500);
        }
      });
    });
  }
});

现场示例: https://codepen.io/themes4all/pen/oNWeYzp

【问题讨论】:

    标签: javascript jquery css sass bootstrap-5


    【解决方案1】:

    问题

    1. $(this).remove() - 完全移除微调器。因此,微调器元素将不会在再次显示的模态中可用。
    2. 删除了不必要的代码和条件

    解决方案

    不要删除微调器元素,只需使用 d-none 类将其隐藏

    CodePen

    $(function () {
      $(".modal").on("show.bs.modal", function (e) {
        $(".spinner")
          .removeClass("d-none")
          .delay(3000)
          .fadeOut(500, function () {
            $(this).addClass("d-none");
          });
      }).modal("show");
    });
    

    【讨论】:

    • 页面加载时显示模态如何?
    • @Angusdev 页面加载时已经显示模式
    • 不,我说的是当我第一次访问该页面时,模式显示在我关闭后没有单击按钮我可以通过单击按钮打开它
    • 试试看我的例子codepen.io/themes4all/pen/oNWeYzp
    • @Angusdev 正确检查答案。有一个codepen链接
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多