mui tap事件,mui.confirm弹窗出现两次

本文探讨了将click事件替换为tap后,如何修复点击失效问题,并解决弹窗显示异常。作者分享了使用全局变量控制弹窗显示及延迟重置的方法,以确保在确认签收操作中的正确交互。

 tap换成 click,点击事件完全失效,tap可以跳转下一个页面,但是弹窗会出现两次,用变量控制弹窗的显示。

 var flag=true;//定义一个全局变量
    //#pullrefresh 是自己的id元素     用的tap事件,网上说tap把click,我的功能完全失效
	mui('#pullrefresh').on('tap', '.view', function (event) {
		var elem = this;
		var stIsQueren = elem.getAttribute("value1");
		if(stIsQueren=="3"){
			var btnArray = ['取消', '确认'];
			if(flag){
				mui.confirm('确认签收这条数据吗?', '提示信息', btnArray, function (e) {
					if (e.index == 1) {
						console.log("调用自己的方法")
					}
					else {
						mui.toast("取消");
					}
				})
				flag=false 
			}
			//一秒过后,强制把flag置为true
			setTimeout(function(){
				flag=true
			},1000)

		}else{
		   window.open()
		}
	});

``` mui('.item1').on('tap','.ant',function(){ const nl = $(` <div class="xbj"> <div class="xxbj">学习笔记</div> <div class="scbj">删除</div> </div> <div class="bnr sj svc bz "></div> <div class="jdm mv nzb"> <img src="./images/add.png" class="adnt"> <div class="ll xz">编辑笔记</div> </div>`) $('.item1').append(nl) $(this).parent().addClass('yc') const sE = nl.filter('.bnr')[0] mui.openWindow('xjls.html','xjls.html',{}) window.addEventListener('sbc',function(et){ sE.innerHTML = et.detail.content; }) mui('.nzb').on('tap','.xz',function(){ const zsb = $(this).parents().siblings('.bz') mui.openWindow('bj.html','bj.html',{}) window.addEventListener('sb',function(et){ zsb.text(et.detail.content); }) }) }) mui('.item').on('tap','.ant',function(){ const nls = $(` <div class="xbj" id="sz"> <div class="xxbj">学习笔记</div> <div class="scbj">删除</div> </div> <div class="bnr sj nm"></div> <div class="jdm mv"> <img src="./images/add.png" class="adnt"> <div class="bzt">编辑笔记</div> </div>`) $('#bl').addClass('yc') $('.item').append(nls) const ssE = nls.filter('.bnr')[0] mui.openWindow('xjls.html','xjls.html',{}) window.addEventListener('sbc',function(et){ ssE.innerHTML = et.detail.content; }) }) mui('.item').on('tap','.bzt',function(){ const zb = $(this).parents().siblings('.nm') mui.openWindow('bj.html','bj.html',{}) window.addEventListener('sb',function(et){ zb.text(et.detail.content); }) }) mui('.item1').on('tap','.scbj',function(){ mui.confirm('删除笔记','是否删除笔记',['否','是'],(e)=>{ if(e.index==1){ $(this).parent().siblings('.svc').addClass('yc') $(this).parent().addClass('yc') $(this).parent().siblings('.jdm').addClass('yc') $('.item1 .an').removeClass('yc') } },'div') }) mui('.item').on('tap','.scbj',function(){ mui.confirm('删除笔记','是否删除笔记',['否','是'],(e)=>{ if(e.index==1){ $(this).parent().siblings('.jdm').addClass('yc') $(this).parent().siblings('.svc').addClass('yc') $(this).parent().addClass('yc') $('#bl').removeClass('szb') } },'div') }) mui('#sz').on('tap','.scbj',function(){ mui.confirm('删除笔记','是否删除笔记',['否','是'],(e)=>{ if(e.index==1){ $(this).parent().siblings('.nm').addClass('yc') $(this).parent().siblings('.mv').addClass('yc') $(this).parent().addClass('yc') $('#bl').removeClass('szb') } },'div') })```为什么#bl第一次删除可以,第二次删除不会全部隐藏
03-24
``` mui('.item1').on('tap','.ant',function(){ const nl = $(` <div class="xbj"> <div class="xxbj">学习笔记</div> <div class="scbj">删除</div> </div> <div class="bnr sj svc bz"></div> <div class="jdm mv nzb"> <img src="./images/add.png" class="adnt"> <div class="ll xz">编辑笔记</div> </div>`) $('.item1').append(nl) $(this).parent().addClass('yc') const sE = nl.filter('.bnr')[0] mui.openWindow('xjls.html','xjls.html',{}) window.addEventListener('sbc',function(et){ sE.innerHTML = et.detail.content; }) mui('.nzb').on('tap','.xz',function(){ const zsb = $(this).parents().siblings('.bz') mui.openWindow('bj.html','bj.html',{}) window.addEventListener('sb',function(et){ zsb.text(et.detail.content); }) }) }) mui('.item').on('tap','.ant',function(){ const nls = $(` <div class="xbj"> <div class="xxbj">学习笔记</div> <div class="scbj">删除</div> </div> <div class="bnr sj nm"></div> <div class="jdm mv"> <img src="./images/add.png" class="adnt"> <div class="bzt">编辑笔记</div> </div>`) $('.item').append(nl) $(this).parent().addClass('yc') const ssE = nls.filter('.bnr')[0] mui.openWindow('xjls.html','xjls.html',{}) window.addEventListener('sbc',function(et){ ssE.innerHTML = et.detail.content; }) }) mui('.item').on('tap','.bzt',function(){ const zb = $(this).parents().siblings('.nm') mui.openWindow('bj.html','bj.html',{}) window.addEventListener('sb',function(et){ zb.text(et.detail.content); }) }) mui('.item1').on('tap','.scbj',function(){ mui.confirm('删除笔记','是否删除笔记',['否','是'],(e)=>{ if(e.index==1){ $('.item1 .an').removeClass('yc') $(this).parent().siblings('.svc').addClass('yc') $(this).parent().addClass('yc') $(this).parent().siblings('.jdm').addClass('yc') // $('.item .an').removeClass('szb') } },'div') }) mui('.item').on('tap','.scbj',function(){ mui.confirm('删除笔记','是否删除笔记',['否','是'],(e)=>{ if(e.index==1){ $('.item1 .an').removeClass('yc') $(this).parent().siblings('.svc').addClass('yc') $(this).parent().addClass('yc') $(this).parent().siblings('.jdm').addClass('yc') $('.item .an').removeClass('szb') } },'div') })```为什么第一次编辑笔记的时候不会让两个笔记内容改变,第二次会让两个内容一起改变
03-22
<think>嗯,用户想了解如何在Layx框架中设置confirm弹窗的显示时长。首先,我需要回忆一下Layx的文档和相关配置选项。记得Layx是一个基于JavaScript弹窗组件库,可能类似于Element UI或者MUI框架中的弹窗功能。 根据用户提供的引用内容,其他框架比如Element Plus和Mui通过修改配置或者CSS来自定义弹窗。比如,引用[2]中提到了通过覆盖回调函数来处理确认和取消操作,引用[3]则展示了如何修改CSS样式。不过用户问的是Layx框架,所以需要针对它的特定配置。 我应该先检查Layx的官方文档是否有关于弹窗持续时间的参数。通常这类弹窗组件会有timeout或者duration这样的选项。如果文档中确实存在这样的参数,那直接告诉用户使用该参数即可。如果不存在,可能需要通过其他方法,比如使用setTimeout函数来手动关闭弹窗,类似于引用[2]中的Promise处理方式。 另外,用户提到的是confirm弹窗,也就是需要确认和取消按钮的弹窗。这种情况下,自动关闭可能需要谨慎处理,避免用户在未操作前弹窗就消失了。但用户可能有特殊需求,比如短暂显示后自动关闭,所以需要给出相应的解决方案。 还需要考虑Layx的API是否允许在创建弹窗后获取实例并调用关闭方法。如果可以通过返回值或事件监听来实现,那么结合setTimeout应该是可行的。例如,创建confirm弹窗后,用setTimeout在指定时间后触发关闭函数,并处理取消或确认的逻辑。 可能还需要提醒用户,自动关闭confirm弹窗可能会影响用户体验,需要根据实际场景谨慎使用。同时,检查是否有其他相关配置,比如动画持续时间或是否阻塞用户操作,这些都可能影响弹窗的显示时长。 总结下来,解决步骤可能是:1. 检查Layx的配置参数是否有duration选项;2. 如果没有,使用setTimeout手动关闭;3. 提供代码示例,说明如何实现;4. 注意事项和可能的问题。</think>根据Layx框架的弹窗特性,设置confirm弹窗显示时长的实现方法如下: ### 一、基础配置方法 Layx通过`timeout`参数控制弹窗自动关闭时间(单位:秒),适用于所有弹窗类型: ```javascript layx.confirm({ title: '确认操作', content: '数据提交后将不可修改', timeout: 5, // 5秒后自动关闭 confirm: function(){ console.log('用户点击确认') }, cancel: function(){ console.log('用户点击取消') } }) ``` *注意:该参数会改变弹窗交互逻辑,自动关闭时将触发cancel回调[^2]* ### 二、高级动态控制 通过返回的实例对象实现精准控制: ```javascript const myConfirm = layx.confirm({ title: '高级确认', content: '倒计时10秒关闭', lock: true // 禁止手动关闭 }) setTimeout(() => { myConfirm.close() // 强制关闭弹窗 console.log('超时未操作') }, 10000) ``` ### 三、注意事项 1. 自动关闭与手动操作的冲突处理建议: ```javascript let isUserAction = false const confirmBox = layx.confirm({ content: '请及时操作', confirm: () => { isUserAction = true }, cancel: () => { isUserAction = true } }) setTimeout(() => { if(!isUserAction){ confirmBox.close() console.log('执行默认取消操作') } }, 5000) ``` 2. 样式修改建议配合CSS动画: ```css .layx-window { animation: fadeOut 10s forwards; } @keyframes fadeOut { 0% { opacity: 1; } 90% { opacity: 1; } 100% { opacity: 0; } } ``` *该方案需配合JavaScript执行最终关闭操作[^3]*
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值