2016-11-17 3 views
-2

Следующая html-страница содержит кнопку. Если вы нажмете кнопку, содержащуюся на странице, цвет кнопки должен стать красным (в соответствии с js-кодом). Однако это не работает, и я не понимаю, почему он не работает. На самом деле никто вокруг меня не понимает, почему он не работает. Если кто-то знает, что происходит, пожалуйста, помогите мне!Функция javascript не набирается

<!DOCTYPE html> 
 
    <html> 
 
     <body> 
 

 
      <h1>Please click the button below, it will turn red.</h1> 
 

 
      <button type="button" onclick="myFunction(this)">Set background color</button> 
 

 
      <script> 
 
       function myFunction(element) { 
 
       element.style.backgroundColor = "red"; 
 
       } 
 
      </script> 
 

 
     </body> 
 
    </html>

UPDATE: приведенный выше код работает, извините за это. Я упростил свой исходный код, прежде чем публиковать его здесь. Моя цель состояла в том, чтобы сократить код до необходимой части. Ниже вы найдете исходный код. Если я дважды нажму кнопку, она станет зеленой. Тем не менее, он остается красным. И я не понимаю, почему.

<!DOCTYPE html> 
    <html> 
     <body> 

     <h1>Please click the button below, it will turn red.</h1> 

     <button type="button" onclick="setColor(this)">Set background color</button> 

     <script> 
      lastField = null; 
      function setColor(element) { 
      if (element === lastField) { 
       element.style.backgroundColor = "green"; 
      } 

      element.style.backgroundColor = "red"; 

      lastField = element; 
      } 
     </script> 

    </body> 
</html> 
+5

Работы для меня: http://jsbin.com/gataqo/edit?html,js,output –

+0

Какой браузер вы используете? –

+0

, работающий как шарм – Mahi

ответ

3

Первый раз, когда вы щелкните по ней, lastField равно нулю, поэтому фон установлен на красный и lastField установлен на элементе.

Во второй раз, когда вы нажимаете на него, lastField - это элемент, поэтому фон установлен на зеленый ... тогда фон сразу устанавливается на красный, а lastField - на элемент.

Третий и подпоследовательный момент идентичны второму времени.

Вам нужен else.