如何在页面用定时器弹出弹出框

提问 未结 11 454
俺爱吃包子
悬赏:20飞吻
我已经用定时器写了一个弹出框,但是我实际上想要的是只弹一次,但是到了时间后一直弹,有没有弹一次,然后关闭后,在弹出来这种方法,急!急!急!
回帖
  •     var timer = setTimeout(function () {
    alert('OK');
    clearTimeout(timer);
    },5000);
    0 回复
  • @Isve丨丶勿言 还是不行
    0 回复
  • setInterval("d_msg()", 5000);
    function d_msg() {
    $.ajax({
    type: "POST",
    dataType: 'json',
    contentType: "application/json",
    url: "${base}/qualityAlarm/openData.htm",
    cache: false,
    success: function(data) {
    if (data != null && data != "") {
    layer.open({
    type: 2,
    title: "指标报警",
    shade: [0],
    area: ['500px','300px'],
    offset: 'rb',//右下角弹出
    shift: 2,
    content: ['${base}/qualityAlarm/openPage.htm', 'no'],
    });
    }
    }
    });
    }
    这是我写的定时器弹框
    0 回复
  • @俺爱吃包子 这个就是只弹一次啊。。。。你要是要弹出-关闭-弹出-关闭无限循环这种?
    0 回复
  • 我写的这个是5秒之后弹出,我想的是弹出后,把他关闭后,等他自己时间到了再弹,而不是一直弹,不间断,关闭的话只能从关闭最新的开始关闭
    0 回复
  • @俺爱吃包子
    function popup(stop) {
    if (typeof stop === "undefined" || !stop)
    var timer = setTimeout(function () {
    clearTimeout(timer);
    if (!confirm("需要关闭弹窗吗")) {
    popup(stop);
    }
    }, 5000);
    }

    popup();
    confirm那里自己换成layer的回调方式
    0 回复
  • @Isve丨丶勿言 另外可以不要参数stop,同时取消判断。
    function popup() {
    var timer = setTimeout(function () {
    clearTimeout(timer);
    if (!confirm("需要关闭弹窗吗")) {
    popup();
    }
    }, 5000);
    }

    popup();
    效果:5秒后弹出弹窗,如果点的确定,则不再弹出;如果点击取消,在点击后5秒回再次弹出
    0 回复
  • function popup() {
    if (!confirm("需要关闭弹窗吗")) {
    var timer = setTimeout(function () {
    clearTimeout(timer);
    popup();
    }, 5000);
    }
    }

    popup();
    这种写法是先弹弹窗。其余效果和上一个一样。根据需要选择。

    你需要把if里面的写到layer的按钮点击事件中去或者按钮的end回调里面
    0 回复
  • @Isve丨丶勿言 我按照你的写了,但是还是不行,你能试着写一下弹出页面的么,就是我的layer.open,因为怎么限制,那个页面都是没有关闭又弹出来了
    0 回复
  • @俺爱吃包子 。。。。
    function popup() {
    var index = layer.open({
    title: "标题",
    content: "我是内容.不管哪个按钮都会关闭弹窗.关闭后等5000毫秒再次弹出",
    btn: ["按钮一", "按钮二"],
    btn1: function () {
    layer.close(index);
    },
    btn2: function () {
    layer.close(index);
    },
    end: function () {
    var timer = setTimeout(function () {
    clearTimeout(timer);
    popup();
    }, 5000);
    }
    });
    }

    popup();
    0 回复