jQuery动画没有显示

时间:2014-01-10 16:58:38

标签: javascript jquery html

所以,我有一个带有属性的td元素onclick ='edit(this)'。 此脚本中的所有内容都可以正常工作,除非我在键入非空格或数字字符时尝试执行alerts(),否则该元素绝对不会发生。

<script>
    function edit(s) {
        if(s.innerHTML != "&nbsp;" && s.innerHTML != "<nobr name=\"clear\">&nbsp;</nobr>") {
            s.innerHTML = "<input onblur='set(this)' id ='select' type='text' value='"+ s.innerHTML[19] +"'>";
        }
        else{
            s.innerHTML = "<input onblur='set(this)' id ='select'type='text'>";
        }
        document.getElementById('select').focus();
    }
    function set(s) {
        if(s.value == "" || (s.value != "1" && s.value != "2" && s.value != "3" && s.value != "4" && s.value != "5" && s.value != "6" && s.value != "7" && s.value != "8" && s.value != "9")){
            if(s.value != "1" && s.value != "2" && s.value != "3" && s.value != "4" && s.value != "5" && s.value != "6" && s.value != "7" && s.value != "8" && s.value != "9") {
                s.parentNode.innerHTML = "<nobr name='clear' id='alert'>&nbsp</nobr>";
                alerts();
            }
            else {
                s.parentNode.innerHTML = "<nobr name='clear'>&nbsp</nobr>";
            }
        }
        else{
            s.parentNode.innerHTML = "<nobr name='clear'>" + s.value + "</nobr>";
        }
    }
    function clears() {
        var g = window.prompt("Remove all values from sudoku:","1");
        if(g != null) {
            $("#sudoku"+g+" [name='clear']").html("");
        }
    }
    function alerts() {
        $("#alert").parent().animate({backgroundColor: 'red'},"fast");
        $("#alert").parent().animate({backgroundColor: 'white'},"slow",killid());
    }
    function killid() {
        $("#alert").removeAttr("id");
    }
</script>

添加ID,然后几乎立即删除。背景颜色不会改变。

想法?

1 个答案:

答案 0 :(得分:3)

那是因为你在开始动画时正在调用函数。删除函数名后面的括号,让animate方法调用它:

$("#alert").parent().animate({ backgroundColor: 'white' }, "slow", killid);