jQuery 使用 MUI confirm 插件:点击其他地方取消弹框且不触发回调
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>
代码解析:
- 引入库文件: 在 HTML 页面中引入 MUI 和 jQuery 库文件。
- 绑定点击事件: 为按钮绑定点击事件,点击按钮时调用 MUI.confirm 插件弹出确认框。
- MUI.confirm 插件: 使用 MUI.confirm 插件弹出确认框,并传入确认框标题、内容、按钮文字以及回调函数。
- 阻止冒泡: 给遮罩层绑定 tap 事件,阻止冒泡,防止点击遮罩层时触发关闭确认框的事件。
- 关闭确认框: 给遮罩层之外的区域绑定 tap 事件,当点击遮罩层之外的区域时,移除遮罩层和弹窗,从而关闭确认框。
注意事项:
- MUI confirm 插件是基于 MUI 框架的,使用时需要遵循 MUI 框架的规范,例如弹出确认框时需要添加遮罩层等。
- 可以通过 e.index 属性获取用户选择的结果,其中 0 表示点击了取消按钮,1 表示点击了确定按钮。
通过以上代码和解释,您可以轻松地实现使用 jQuery 和 MUI confirm 插件,并实现点击其他地方取消弹框的效果,同时防止回调函数误触发。
原文地址: https://www.cveoy.top/t/topic/jEnK 著作权归作者所有。请勿转载和采集!