2014-01-10 67 views
0

所以,我有一個屬性爲onclick ='edit(this)'的td元素。 這個腳本中的所有東西都可以正常工作,除非當我嘗試在輸入非空格或數字字符時嘗試執行alerts()時,元素絕對沒有任何反應。jQuery動畫無法顯示

<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後添加,然後幾乎立即刪除。背景顏色不變。

想法?

+0

你嘗試這jsfidle –

+0

@AlexShilman它在我的網絡服務器上運行。 – user3105700

回答

3

這是因爲您在啓動動畫時正在調用該功能。函數名後刪除括號讓animate方法調用它來代替:

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

它仍然不起作用。該ID出現,它等待,然後消失。 td元素沒有任何反應。 – user3105700

+0

在谷歌瀏覽器中,如果我手動應用背景顏色元素,它會顯示背景顏色,但代碼不起作用。 – user3105700

+0

@ user3105700:你有插件來製作彩色動畫嗎? – Guffa