Проблема с отображением / скрытием элементов пользовательского интерфейса в HTML

Это шаблон конструктора функций, он используется для создания объектов.

   
const Juice = function(juice) {
      this.juice = juice;
}
const appleJuice = new Juice('apple');
console.log(appleJuice.juice); // apple

const orangeJuice = new Juice('orange');
console.log(orangeJuice.juice); // orange

В резюме вы используете конструктор функции для создания новый объект со значением, указывающим на вновь созданный объект. Вы можете создать несколько экземпляров объекта (appleJuice, orangeJuice), но каждый экземпляр может иметь собственные значения свойств (apple или orange)

Проверить этот учебник

1
задан j08691 18 January 2019 в 20:02
поделиться

4 ответа

Это может быть то, что вы ищете. Он держит кнопку в том же месте.

HTML

<input id="Button" type="button" onclick="showHide('UI');" value="Show UI" />
<div id="UI" style="visibility: hidden">
    <p> Various UI goes here</p>
</div>
<p id="status">Start</p>

JS

function showHide(UI) {
  if (document.getElementById(UI).style.visibility === 'hidden') {
    document.getElementById("status").innerHTML = "Shown";
    document.getElementById(UI).style.visibility = "visible";
    document.getElementById('Button').value = 'Hide UI'
  } else {
    document.getElementById("status").innerHTML = "Hidden";
    document.getElementById(UI).style.visibility = "hidden";
    document.getElementById('Button').value = 'Show UI'
  }
0
ответ дан Derf Mongrel 18 January 2019 в 20:02
поделиться

Вам просто нужно вызвать функцию один раз в скрипте. Смотри код ниже, я позвонил showHide('show', 'hideUI'); сразу после объявления функции.

function showHide(thingToHide, thingToShow) {
  document.getElementById("status").innerHTML = "Shown";
  if (thingToHide == "showUI") {
    document.getElementById("status").innerHTML = "Hidden";
  }
  document.getElementById(thingToHide).style.visibility = "hidden";
  document.getElementById(thingToShow).style.visibility = "visible";
}
showHide('showUI', 'hideUI');
<div id="hideUI">
  <input id="showButton" type="button" onclick="showHide('hideUI', 'showUI');" value="Show UI" />
</div>

<div id="showUI">
  <input id="hideButton" type="button" onclick="showHide('showUI', 'hideUI');" value="Hide UI" />
  <p> Various UI goes here</p>
</div>
<p id="status">Start</p>

0
ответ дан shhdharmen 18 January 2019 в 20:02
поделиться

Проблема с моим исходным кодом заключается в том, что функция javascript ДО ПЕРЕД div. Если я устанавливаю видимость div showUI скрытым в HTML и перемещаю javascript после HTML для div, он работает как нужно.

0
ответ дан jbww 18 January 2019 в 20:02
поделиться

Вам необходимо выполнить showHide ('hideUI', 'showUI'); при загрузке страницы. Следующий Javascript должен работать:

function showHide(thingToHide, thingToShow) {
  document.getElementById("status").innerHTML = "Shown";
  if (thingToHide == "showUI") {
    document.getElementById("status").innerHTML = "Hidden";
  }
  document.getElementById(thingToHide).style.visibility = "hidden";
  document.getElementById(thingToShow).style.visibility = "visible";
}
showHide('hideUI', 'showUI');
0
ответ дан MaZoli 18 January 2019 в 20:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: