jQuery 使用 MUI confirm 插件:点击其他地方取消弹框且不触发回调

由于 jQuery 和 MUI confirm 插件都是前端库,而 MUI confirm 插件是 MUI 框架中的一个弹窗组件,所以需要在 HTML 页面中引入相应的库文件。

以下示例代码展示了如何在 jQuery 中使用 MUI confirm 插件,并实现点击其他地方取消弹框,同时不触发回调监听:

<!DOCTYPE html>
<html>
<head>
  <meta charset='UTF-8'>
  <title>jQuery 使用 MUI confirm 插件</title>
  <!-- 引入 MUI 样式库 -->
  <link rel='stylesheet' type='text/css' href='https://cdn.bootcdn.net/ajax/libs/mui/3.7.1/css/mui.min.css'>
  <!-- 引入 jQuery 库 -->
  <script src='https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js'></script>
  <!-- 引入 MUI.js 库 -->
  <script src='https://cdn.bootcdn.net/ajax/libs/mui/3.7.1/js/mui.min.js'></script>
</head>
<body>
  <button id='btn'>点击弹出确认框</button>
  <script>
    $(function() {
      // 点击按钮弹出确认框
      $('#btn').click(function() {
        // 调用 MUI.confirm 插件
        mui.confirm('确定要删除吗?', '提示', ['取消', '确定'], function(e) {
          if (e.index === 1) {
            // 点击确定按钮的回调函数
            console.log('点击了确定按钮');
          } else {
            // 点击取消按钮的回调函数
            console.log('点击了取消按钮');
          }
        });
        // 给遮罩层绑定点击事件,阻止冒泡
        $('.mui-backdrop').on('tap', function(e) {
          e.stopPropagation();
        });
        // 给遮罩层之外的区域绑定点击事件,关闭确认框
        $('body').on('tap', function() {
          $('.mui-backdrop').remove();
          $('.mui-popup').remove();
        });
      });
    });
  </script>
</body>
</html>

代码解析:

  1. 引入库文件: 在 HTML 页面中引入 MUI 和 jQuery 库文件。
  2. 绑定点击事件: 为按钮绑定点击事件,点击按钮时调用 MUI.confirm 插件弹出确认框。
  3. MUI.confirm 插件: 使用 MUI.confirm 插件弹出确认框,并传入确认框标题、内容、按钮文字以及回调函数。
  4. 阻止冒泡: 给遮罩层绑定 tap 事件,阻止冒泡,防止点击遮罩层时触发关闭确认框的事件。
  5. 关闭确认框: 给遮罩层之外的区域绑定 tap 事件,当点击遮罩层之外的区域时,移除遮罩层和弹窗,从而关闭确认框。

注意事项:

  • MUI confirm 插件是基于 MUI 框架的,使用时需要遵循 MUI 框架的规范,例如弹出确认框时需要添加遮罩层等。
  • 可以通过 e.index 属性获取用户选择的结果,其中 0 表示点击了取消按钮,1 表示点击了确定按钮。

通过以上代码和解释,您可以轻松地实现使用 jQuery 和 MUI confirm 插件,并实现点击其他地方取消弹框的效果,同时防止回调函数误触发。

jQuery 使用 MUI confirm 插件:点击其他地方取消弹框且不触发回调

原文地址: https://www.cveoy.top/t/topic/jEnK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录