#javascript
#javascript
Вопрос:
когда я нажимаю кнопку pierre на странице, изображение должно измениться, я знаю, что строка работает, но когда я нажимаю кнопку, она говорит, что функция не определена, я попытался изменить идентификаторы в тегах, но это тоже не сработало, я просто очень смущен
<!DOCTYPE html>
<html>
<head>
<title>Pierre Omidyar</title>
</head>
<script>
var x = 0
function pierre() {
if (x = 0) {
document.getElementById('myImage').src='https://cdn3.pitchfork.com/longform/699/Pierre1.jpg';
var x = 1
} else {
var x = 0
}
}
</script>
<body>
<button onclick="pierre()" type="button">pierre</button>
<br>
<img height=50% width=50% id="myImage" src="https://upload.wikimedia.org/wikipedia/commons/0/0b/Pierre_Omidyar_(50911249).jpg"/>
<audio loop id="no"><source src="https://codehs.com/uploads/9af74ff56cf4b8ed3809fba276efa59e" type="audio/mpeg"></audio>
<p id="para">Hi, I'm Pierre Omidyar, I made eBay</p>
</body>
</html>
Комментарии:
1. Вы только что присвоили новое значение
=
… прочитайте сравнение JavaScript и логические операторы w3schools.com/js/js_comparisons.asp2. «… он говорит, что функция не определена» Вы имеете в виду, что в консоли разработчика она выдает это сообщение об ошибке? Это удивительно, учитывая ваш код. Обычно это происходит, когда у вас где-то есть синтаксическая ошибка, но я ее не вижу.
Ответ №1:
Функция вызывается (не undefined
проблема)
В вашем коде есть 2 проблемы.
- Вы определили
x
переменную несколько раз. Это недопустимо. if (x = 0) {
всегда равно false, и я думаю, что его следует изменить наx == 0
.
Теперь этот код будет работать.
<!DOCTYPE html>
<html>
<head>
<title>Pierre Omidyar</title>
</head>
<script>
var x = 0;
function pierre() {
if (x == 0) {
document.getElementById('myImage').src='https://cdn3.pitchfork.com/longform/699/Pierre1.jpg';
x = 1;
} else {
x = 0;
}
}
</script>
<body>
<button onclick="pierre()" type="button">pierre</button>
<br>
<img height=50% width=50% id="myImage" src="https://upload.wikimedia.org/wikipedia/commons/0/0b/Pierre_Omidyar_(50911249).jpg"/>
<audio loop id="no"><source src="https://codehs.com/uploads/9af74ff56cf4b8ed3809fba276efa59e" type="audio/mpeg"></audio>
<p id="para">Hi, I'm Pierre Omidyar, I made eBay</p>
</body>
</html>
Комментарии:
1.
if (x = 0) {
всегдаfalse
. И разрешено повторно объявлять переменную. Проблема в том, что функцияx
затеняет глобальную, даже если функцияvar
идет послеif
условия.2. предполагается, что это переключатель, поэтому x будет меняться между 0 и 1 при каждом нажатии кнопки, я не уверен, что вы имеете в виду, определяя его несколько раз
Ответ №2:
В вашем коде было несколько проблем. Вот обновленный код
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
<script type="text/javascript">
var x = 0;
function pierre() {
if (x === 0) {
document.getElementById('myImage').src = 'https://cdn3.pitchfork.com/longform/699/Pierre1.jpg';
x = 1
}
else {
x = 0
}
}
</script>
</head>
<body>
<button onclick="pierre()" type="button">pierre</button>
<br>
<img height=50% width=50% id="myImage" src="https://upload.wikimedia.org/wikipedia/commons/0/0b/Pierre_Omidyar_(50911249).jpg"/>
<audio loop id="no">
<source src="https://codehs.com/uploads/9af74ff56cf4b8ed3809fba276efa59e" type="audio/mpeg">
</audio>
<p id="para">Hi, I'm Pierre Omidyar, I made eBay</p>
</body>
</html>