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

这是我已经尝试过的:

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


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

javascript - 在jQuery中停止/销毁Magnific Popup-LMLPHP

因此,尽管$ .magnificPopup.remove();阻止显示弹出窗口,(因为它破坏了JavaScript!),它不是有效的函数,并且在测试该窗口时出现错误。我已经尝试过$ .magnificPopup.destroy();和$ .magnificPopup.stop();但它们也是无效的。

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

最佳答案

感谢您的答复。我最终使用$ .magnificPopup.close();但是,重要的是,我将代码放到了大型弹出式窗口初始化之后。以前,我在初始化之前就拥有它。愚蠢的错误!所以我的工作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
    }
});


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

07-24 09:30