如何使按钮无限闪烁,但有可能随时停止

时间:2011-12-13 06:35:32

标签: jquery jquery-ui effects jquery-ui-button

我需要让按钮在其他一些元素触发之后开始闪烁,例如选中复选框 - 请参阅下面的代码:

<label>I agree with the terms</label>
<input class="some_check" type="checkbox" id="Signed">
<button class="buttonstyle" name="buttonNext" onClick="nextChoose('NEXT')" disabled>Proceed!</button>

闪烁必须是无限的,直到:

  1. 用户点击按钮或
  2. 取消选中该复选框。
  3. 我知道jQuery UI中有.effect()方法,但它有时间限制 如果我通过回调循环它,我怎么能打破它以返回先前状态的按钮?

2 个答案:

答案 0 :(得分:6)

也许您正在寻找类似THIS FIDDLE

的内容

CSS:

#click, #btn {margin: 20px;}

JavaScript的:

var timer;

$("#blink").on('change', function() {
    if ($("#blink").is(':checked')) {
        blinking($("#btn"));
    } else {
        clearInterval(timer);
    }
});

$("#btn").click(function() {
    clearInterval(timer);
    $("#blink").attr('checked', false);
});



function blinking(elm) {
    timer = setInterval(blink, 10);
    function blink() {
        elm.fadeOut(400, function() {
           elm.fadeIn(400);
        });
    }
}

HTML:

<input type="checkbox" id="blink"/>
<input type="button" value="CLICK ME" id="btn" />

答案 1 :(得分:2)

您可以使用setInterval一次又一次地发生某些事情,然后在其返回值上调用clearInterval以使其停止。 Here's a working example让你开始。