所以,我有一个带有属性的td元素onclick ='edit(this)'。 此脚本中的所有内容都可以正常工作,除非我在键入非空格或数字字符时尝试执行alerts(),否则该元素绝对不会发生。
<script>
function edit(s) {
if(s.innerHTML != " " && s.innerHTML != "<nobr name=\"clear\"> </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'> </nobr>";
alerts();
}
else {
s.parentNode.innerHTML = "<nobr name='clear'> </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,然后几乎立即删除。背景颜色不会改变。
想法?
答案 0 :(得分:3)
那是因为你在开始动画时正在调用函数。删除函数名后面的括号,让animate
方法调用它:
$("#alert").parent().animate({ backgroundColor: 'white' }, "slow", killid);