You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:点击按钮给Cookie值加1,实现Bootstrap模态框仅显示3次

解决Bootstrap模态框仅显示3次的Cookie计数问题

我看了你的代码,发现几个关键问题导致Cookie计数没正常工作,下面帮你修正并把逻辑理清楚:

你的代码里的核心问题

  • Cookie名称不统一:一会儿读取AcceptMyGift,一会儿写入AcceptMyGiftOnce,完全没法正确关联计数
  • 数值类型问题:Cookie存储的是字符串,直接做++运算会变成字符串拼接(比如"1"变成"11",不是2)
  • 逻辑判断偏差:你要限制最多显示3次,但代码里判断的是<5,而且分支逻辑太冗余
  • 模态框关闭处理冲突:Bootstrap的关闭按钮已经自带data-dismiss="modal",额外加fadeOut会干扰组件自身的隐藏行为

修正后的完整代码

HTML部分(无需修改,保持你的结构即可)

<!-- Modal -->
<div id="hereiakarneta" class="modal fade" role="dialog">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" id="AcceptMyGiftClose" data-dismiss="modal">&times;</button>
        <h4 class="modal-title" style="text-align: center;" >From Me To You</h4>
      </div>
      <div class="modal-body">
        <div class="hikmywords">
          <img src="" class="img-responsive" alt="">
          <ul>
            <li><h5>my gift to you</h5></li>
            <li>
              <p>click on the button and download my gift</p>
            </li>
          </ul>
        </div>
      </div>
      <div class="modal-footer">
        <p><a>My Gift</a></p>
      </div>
    </div>
  </div>
</div>

jQuery部分(修正后)

jQuery(document).ready(function($) {
  // 读取Cookie,转成数字,默认0(如果没有Cookie的话)
  var closeCount = parseInt($.cookie('popupCloseCount')) || 0;

  // 如果关闭次数小于3,显示模态框
  if (closeCount < 3) {
    $('#hereiakarneta').modal({
      show: true,
      backdrop: 'static',
      keyboard: false
    });

    // 绑定关闭按钮的点击事件
    $("#AcceptMyGiftClose").on("click", function() {
      // 计数加1
      closeCount++;
      // 更新Cookie,有效期30天,路径根目录(确保全站有效)
      $.cookie('popupCloseCount', closeCount, { expires: 30, path: '/' });
    });
  }
});

代码逻辑说明

  1. 统一Cookie名称:用popupCloseCount作为Cookie的唯一名称,确保读取和写入的是同一个值
  2. 类型转换:用parseInt()把Cookie的值转成数字,避免字符串拼接的错误
  3. 简化逻辑:只需要判断关闭次数是否小于3,小于就显示模态框,不用分第一次和后续情况
  4. 正确处理模态框关闭:依赖Bootstrap自带的data-dismiss="modal"隐藏模态框,只在点击时更新计数

这样修改后,用户每次关闭模态框都会增加计数,当计数达到3次后,再次加载页面就不会再显示这个模态框了。

内容的提问来源于stack exchange,提问作者Sh.Dehnavi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 16:37:49