【问题标题】:Stop/destroy Magnific Popup in jQuery在 jQuery 中停止/销毁 Magnific Popup
【发布时间】:2019-05-17 15:55:01
【问题描述】:

我想防止在单击按钮且未选中任何复选框时显示 magnificPopup 对话框。

这是我已经尝试过的:

$('[id$=DeleteSelectedItems]').click(function (evt) {
  if ($("#datatable :checked").length == 0) {
    evt.preventDefault();
    $.magnificPopup.remove(); //prevent dialog popup if no checkbox selected
  }
});

上面的代码正在做我想要的,除了 $.magnificPopup.remove();不是一个有效的函数。

所以虽然 $.magnificPopup.remove();阻止弹出窗口显示,(因为它破坏了 JavaScript!)它不是一个有效的函数,并且在测试它时我的控制台中出现错误。我试过 $.magnificPopup.destroy();和 $.magnificPopup.stop();但它们也无效。

非常感谢您为此提供的任何帮助!

【问题讨论】:

  • MagnificPopup 没有 remove()destroy()stop() 方法。如果您检查documentation,您最接近的是close(),但我不确定这是否符合您的预期

标签: javascript jquery magnific-popup


【解决方案1】:

感谢您的回复。我最终使用了 $.magnificPopup.close();但是,重要的是,我将代码 放在了 magnific popup 的初始化之后。以前,我在初始化之前就有了。愚蠢的错误!所以我的工作 jQuery 是:

// initialise magnific popup
$('.open-popup-link').magnificPopup({
   type: 'inline',
   midClick: true
});

//don't fire the delete button if no checkbox selected in table with id of datatable
$('[id$=DeleteSelectedItems]').click(function (evt) {
   if ($("#datatable :checked").length == 0) {
       evt.preventDefault();
       $.magnificPopup.close(); //prevent dialog popup if no checkbox selected
    }
}); 

非常感谢您为我指明了正确的方向! :)

【讨论】:

    【解决方案2】:

    也许 evt.preventDefault(); 足以停止弹出窗口显示,您可以删除代码行 $.magnificPopup.remove();这样可以避免控制台中的错误。

    【讨论】:

    • 非常感谢 - 删除 evt.preventDefault();没有解决问题,但我最终发现了问题。请参阅下面的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-01
    相关资源
    最近更新 更多