关于vue 使用setInterval定时器关闭失效的问题 原因为事件传播

/**
** data.isPlay为显示那个按钮
** startHandle开始定时器 setInterval
** pauseHandle,stopHandle理解为关闭定时器就好了clearInterval
**/
<view class="btn" @click.stop="startHandle">
    <view class="btn-status btn-play">
        <view class="char" v-if="!data.isPlay"></view>
        <view v-else-if="data.isPlay">
            <view class="char">{{ data.count }}</view>
            <view class="btn-wrap">
                <view class="btn-s pause" @click.stop="pauseHandle">
                    <view class="btn-inner">||</view> 
                </view>
                <view class="btn-s stop" @click.stop="stopHandle">
                    <view class="btn-inner"></view> 
                </view>
            </view>
        </view>
    </view>
</view>

本来代码上的点击事件为@click 然后让我点击触发关闭的按钮时

我觉得是他切换isPlay的状态然后显示了触发开始的按钮同时也点击了进去导致了这个定时器又重新触发了

导致情况看起来像是没有关闭的样子

然后改为@click.stop阻止事件传播可以解决这个问题

如果不是这个原因可以留言告诉我下 共同进步~

posted @   马铃薯头抽雪茄  阅读(543)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示