2014-01-10 7 views
0

Итак, у меня есть элемент td с атрибутом onclick = 'edit (this)'. Все в этом скрипте отлично работает, за исключением случаев, когда я пытаюсь выполнить оповещения(), когда вводится непространственный или числовой символ, абсолютно ничего не происходит с элементом.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> 

Идентификатор добавляется, а затем удаляется почти мгновенно после этого. Цвет фона не изменяется.

Идеи?

+0

ли вы попробовать это в jsfidle –

+0

@AlexShilman Это работает на моем веб-сервере. – user3105700

ответ

3

Это потому, что вы вызываете функцию справа, когда вы начинаете анимацию. Удалите скобки после имени функции, чтобы метод animate назвать это вместо:

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

Он все еще не работает. Идентификатор появляется, он ждет, затем он исчезает. Ничего не происходит с элементом td. – user3105700

+0

В Google Chrome, если я вручную применил элемент background-color, он отображает цвет фона, но код не работает. – user3105700

+0

@ user3105700: У вас есть плагин для создания цветных анимаций? – Guffa

Смежные вопросы