Кнопка на клик и все пропадает - PullRequest
0 голосов
/ 17 декабря 2018

Я пытался написать код, который имитирует этот пример (код ниже).

function closeMe(){

   		x=document.getElementById("demo");

   		x.style.display="none";

	}

function openMe(){

   		x=document.getElementById("demo");

   		 x.style.display="block";

	}
	<h1>Changing the Style</h1>
	<p>JavaScript can change the style of an HTML element.</p>

	<button type="button" onclick="openMe()">Open!</button>
	<button type="button" onclick="closeMe()">Close!</button>

	<p id="demo">Extra details...You can open and close this paragraph using the buttons above.</p>

К сожалению, в моем собственном коде ниже, когда я нажимаю кнопку "открыть", все вещи просто исчезают.Я не могу понять, почему.

function open() {
  x = document.getElementById("demo");
  x.style.display = "block";
}

function close() {
  x = document.getElementById("demo");
  x.style.display = "none";
}
<p id="demo">Click me to change my HTML content (innerHTML).</p>

<p> this shouldnt disappear</p>

<button onclick="open()">open button</button>

<button onclick="close()">close button</button>

Может кто-нибудь дать мне какой-нибудь добрый совет?

Ответы [ 6 ]

0 голосов
/ 17 декабря 2018

open () и close () - зарезервированное ключевое слово.Пожалуйста, измените имя функции, например openOne () и closeOne (), и оно работает.

0 голосов
/ 17 декабря 2018

вам нужно использовать заглавные буквы в функциях, а стили должны быть между кавычками;

попытаться получить чистый код:)

function Open(){
        x = document.getElementById("demo");
        x.style.display = "block";
    }

        function Close(){
        x = document.getElementById("demo");
        x.style.display = "none";
    }
0 голосов
/ 17 декабря 2018

Ваши имена функций уже используются.Сохраняя ваш код без изменений, за исключением имен функций, которые вы можете протестировать, все работает как положено.

  function open123(){
    let x=document.getElementById("demo");
    x.style.display="block";
  }

  function close123(){
    let x=document.getElementById("demo");
    x.style.display="none";
  }
<p id="demo">Click me to change my HTML content (innerHTML).</p>

<p> this shouldnt disappear</p>

<button onclick="open123()">open button</button>

<button onclick="close123()">close button</button>
0 голосов
/ 17 декабря 2018

Открыть и закрыть зарезервированные ключевые слова.Вам необходимо переименовать метод close & open.

Метод open () открывает новое окно браузера.

Метод close () для закрытия окна.

0 голосов
/ 17 декабря 2018

Итак, все эти функции находятся в области видимости окна, поэтому я назвал имя window.function.Я также объявил переменную в функции, поскольку она выдавала некоторые ошибки javascript.

Теперь это обычно не требуется, но у меня есть ощущение, что jsfiddle использует «use strict»;что может вызвать такие различия.Однако я открыт для других предложений.

Надеюсь, это поможет.

function open() { 
  var x = document.getElementById("demo");
  x.style.display = "block";
}

function close() {
  var x = document.getElementById("demo");
  x.style.display = "none";
}
<!DOCTYPE html>
<html>

<body>

  <p id="demo">Click me to change my HTML content (innerHTML).</p>

  <p> this shouldnt disappear</p>

  <button onclick="window.open();">open button</button>

  <button onclick="window.close();">close button</button>
</body>

</html>

0 голосов
/ 17 декабря 2018

При настройке дисплея на блокировку, добавьте кавычки вокруг "блока"

function open(){
    x=document.getElementById("demo");
    x.style.display="block";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...