2016-11-11 7 views
-4

Вот HTML кодМой JavaScript не работает

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
    <script src="hello.js"></script> 
    <title>Title</title> 
</head> 
<body> 
    <form action="#"> 
    <p>Name:<input type="text"/></p> 
    <p>Password:<input type="text"/></p> 
    <p><input id= "newsletter_button"type="button" value="CLICK ME"/></p> 

    </form> 

</body> 
</html> 

И это JavaScript:

$(":text").focusin(function() { 
    $(this).css("background-color", "red"); 
}); 
$(":text").blur(function() { 
    $(this).css("background-color", "#fff"); 
}); 

hello.js и index.html в одном файле. Я думаю, что есть некоторые проблемы в jQuery.

+2

Я побежал код и не вижу никаких проблем. Вы действительно не объяснили, в чем проблема. Что не работает для вас? –

+3

Это действительно плохой выбор для названия. – trincot

+0

^^ и вопрос. –

ответ

-1

Либо положить hello.js в конце перед тем </body> или обернуть его с

$(document).ready(function(){ 
$(":text").focusin(function() { 
    $(this).css("background-color", "red"); 
}); 
$(":text").blur(function() { 
    $(this).css("background-color", "#fff"); 
}); 
}); 

Что она делает это выполняет код после полной загрузки страницы. В противном случае, если вы поместите его перед загрузкой объекта «: text» DOM, он столкнется с ошибкой объекта DOM, не указанной.

Также у Вас есть ошибка разметки

<p><input id= "newsletter_button"type="button" value="CLICK ME"/></p> 

Поставьте пробел перед типа:

<p><input id= "newsletter_button" type="button" value="CLICK ME"/></p> 
Смежные вопросы