为什么运行函数后我的if / else语句没有运行?在运行显示我的网页倒计时的函数后,我正在尝试运行一系列If / Else语句。我试图在调用倒计时函数后运行匿名函数作为回调,但控制台说代码永远不会被执行。所有这一切的主要规定是if / else语句应该在countdown()完成运行倒计时后开始。
基本上,countdown()被执行,但我的代码停在那里,而if / else语句永远不会被执行。为什么?谢谢。
var countdown = function() {
$('#notes').hide();
$('#notes').html('3').fadeIn(1000);
$('#notes').fadeOut(1000, function() {
$('#notes').html('2').fadeIn(1000);
$('#notes').fadeOut(1000, function() {
$('#notes').html('1').fadeIn(1000);
$('#notes').fadeOut(1000);
})
})
}
$('#click').click(function() {
countdown(function() {
if((document.getElementById('flats').checked &&
document.getElementById('naturals').checked &&
document.getElementById('sharps').checked) {
genAll(document.getElementById('seconds').value * 1000);
}
答案 0 :(得分:1)
不确定您是否重新输入,或者这是否是实际代码,但有几个问题。
1)你的if语句有两个左括号,只有一个闭合。
2)点击回调结束时缺少两个结束括号“}”
3)如果#click元素是一个锚点或提交按钮(可能不是,但我不知道你的HTML是什么样的),你的点击回调可能就是问题。 4)在点击处理程序中,您将函数传递给countdown()作为参数,但倒计时没有任何想法如何处理它。
或许试试这个?
$('#click').click(function () {
countdown();
if (document.getElementById('flats').checked && document.getElementById('naturals').checked && document.getElementById('sharps').checked) {
alert('ok');
}
});
另外,小提琴:http://jsfiddle.net/HC2Nk/
如果要在现有的倒计时()UI更改发生后执行if语句,则需要使用jQuery UI的fadeOut()函数中提供的回调函数。我建议你更多地破解你的代码。看到这个小提琴的工作更新,我相信完全符合您的要求:http://jsfiddle.net/HC2Nk/2/
你的fadeOut()调用可能会被重构一点,以避免在一个块中的嵌套中重复代码,但它似乎可以正常工作,所以我将离开那个决定并试验你。