#javascript #html
#javascript #HTML
Вопрос:
Заранее благодарю вас или любую помощь, которую вы можете предложить. Я создаю меню с выбором и параметрами. После выбора главы в ней отобразятся доступные параметры страницы. Однако я бы хотел, чтобы по умолчанию при первой загрузке веб-сайта отображались страницы первой главы, а не ничего не отображалось. Кажется, я не могу понять это. Код, который у меня есть, выглядит следующим образом:
<script>
window.onload = function() {
document.getElementById("Chapter").onload = function () {
if (this[this.selectedIndex].value === "1") {
document.getElementById("c1").className = "show";
}
};
</script>
<script>
document.getElementById("Chapter").onchange = function () {
if (this[this.selectedIndex].value === "1") {
document.getElementById("c1").className = "show";
} else {
document.getElementById("c1").className = "";
}
if (this[this.selectedIndex].value === "2") {
document.getElementById("c2").className = "show";
} else {
document.getElementById("c2").className = "";
}
};
</script>
Код onload в настоящее время ничего не делает, но onchange работает так, как ожидалось.
Большое вам спасибо за ваше время.
Редактировать: пример HTML выглядит следующим образом:
<div class="jump-options text-center">
QUICK JUMP: CHAPTER
<select id="Chapter">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
</select> PAGE
<select id="c1" name="Page">
<option value="1p0">0</option>
<option value="1p1">1</option>
<option value="1p2">2</option>
<option value="1p3">3</option>
<option value="1p4">4</option>
<option value="1p5">5</option>
</select>
<select id="c2" name="Page">
<option value="2p0">0</option>
<option value="2p1">1</option>
<option value="2p2">2</option>
<option value="2p3">3</option>
<option value="2p4">4</option>
<option value="2p5">5</option>
</select>
</div>
Комментарии:
1. Что это за элемент
#Chapter
? Я думалload
, что событие было только для оконных (и, возможно, оконных) элементов, но, конечно, не<select>
для2. К вашему сведению, вы можете просто использовать
this.value
вместоthis[this.selectedIndex].value
.3. Не могли бы вы опустить вложенные
onload
и просто показать первую главу о загрузке страницы?4. Я отредактировал, чтобы прикрепить пример HTML. при пропуске onload выбор страницы по-прежнему остается пустым для запуска.
5. Спасибо @Barmar, я внес изменения, чтобы немного очистить код.
Ответ №1:
Большинство элементов DOM не имеют onload
событий. Это событие срабатывает только для элементов, которым необходимо получить их содержимое из внешних источников, таких как изображения и фреймы.
Вы не хотите назначать onload
обработчик, то, что вы хотите сделать, это запустить change
событие #Chapter
.
window.onload = function() {
document.getElementById("Chapter").dispatchEvent(new Event("change"));
}
Комментарии:
1. Вы — благословение, спасибо! Это работает по мере необходимости. 🙂