$('#Tips2').on("click", function () { layer.tips('提示:如果展示的报表格式和导出的不同,需配置导出报表格式', '#Tips2', { tips: 3, success: function (layero) { // 添加点击事件监听器 document.addEventListener('click', function (e) { // 判断点击的元素是否为 layer.tips 的目标元素或其子元素 if (!e.target.matches('.layui-layer-Tips') && !e.target.closest('.layui-layer-Tips')) { // 关闭所有的 layer.tips layer.closeAll('tips'); } }); } }); $(".layui-layer-tips .layui-layer-content").attr({'style': "opacity: 0.8;left: -47%;font-size: 14px !important;"}) $(".layui-layer-TipsG.layui-layer-TipsB").attr({'style': " right: 12px;left: auto;width: 0;top: -13px !important;left: 48% !important;height: 0;border-left: 7px solid transparent;border-right: 7px solid transparent;border-bottom: 7px solid black;transform: rotate(0deg) !important;"}) }) 为何立即被关闭了
时间: 2024-02-14 20:15:03 浏览: 104
您的代码中给 `#Tips2` 元素添加了一个 `click` 事件监听器,在点击 `#Tips2` 元素时会显示一个 `layer.tips`。在 `layer.tips` 的 `success` 回调函数中添加了一个点击事件监听器,用于关闭所有的 `layer.tips`。但是,由于您在添加点击事件监听器时没有等待 `layer.tips` 加载完成,因此很可能会出现立即被关闭的情况。
为了避免这种情况,您可以在 `layer.tips` 的 `end` 回调函数中添加点击事件监听器,确保 `layer.tips` 加载完成后再添加监听器。具体实现方式如下:
```javascript
// 给 #Tips2 元素添加一个点击事件监听器
$('#Tips2').on("click", function () {
// 显示 layer.tips,并在显示完成后添加点击事件监听器
layer.tips('提示:如果展示的报表格式和导出的不同,需配置导出报表格式', '#Tips2', {
tips: 3,
success: function (layero) {
// 在 end 回调函数中添加点击事件监听器
layero.end(function () {
document.addEventListener('click', function (e) {
// 判断点击的元素是否为 layer.tips 的目标元素或其子元素
if (!e.target.matches('.layui-layer-Tips') && !e.target.closest('.layui-layer-Tips')) {
// 关闭所有的 layer.tips
layer.closeAll('tips');
}
});
});
}
});
$(".layui-layer-tips .layui-layer-content").attr({'style': "opacity: 0.8;left: -47%;font-size: 14px !important;"});
$(".layui-layer-TipsG.layui-layer-TipsB").attr({'style': " right: 12px;left: auto;width: 0;top: -13px !important;left: 48% !important;height: 0;border-left: 7px solid transparent;border-right: 7px solid transparent;border-bottom: 7px solid black;transform: rotate(0deg) !important;"});
});
```
这段代码中,我们在 `layer.tips` 的 `success` 回调函数中添加了一个 `end` 回调函数,并在其中添加了点击事件监听器,用于关闭所有的 `layer.tips`。由于 `end` 回调函数会在 `layer.tips` 关闭后执行,因此可以确保 `layer.tips` 加载完成后再添加监听器。
阅读全文