我需要让按钮在其他一些元素触发之后开始闪烁,例如选中复选框 - 请参阅下面的代码:
<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>
闪烁必须是无限的,直到:
我知道jQuery UI中有.effect()
方法,但它有时间限制
如果我通过回调循环它,我怎么能打破它以返回先前状态的按钮?
答案 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让你开始。