Проблема с вашим кодом, насколько я могу судить, заключается в том, что вы получаете эту ошибку:
Uncaught TypeError: Невозможно прочитать свойство "addEventListener" из null
И это в этой строке:
ob.addEventListener("click", previous);
Это потому, что строка выше, ob
переопределена следующим образом:
ob = document.getElementById("second");
Поскольку элемент с id="second"
создается только в функции change()
, эта строка вызывает ошибки, потому что она фактически выполняется до запуска change()
, что означает, что ваш код останавливается, как только он выполняется.
Короче говоря, вы должны поместить эти две строки:
var ob = document.getElementById("second");
ob.addEventListener("click", previous);
Внутри функции change()
, поэтому ваш код должен выглядеть так:
ob = document.getElementById("first");
ob.addEventListener("click", change);
function change() {
item = document.getElementById("first");
item.value = "second";
item.id = "second";
ob = document.getElementById("second");
ob.addEventListener("click", previous);
}
function previous() {
document.execCommand('Refresh')
}
<input id="first" type="button" value="first">
И еще одна вещь, которую вы должны сделать, это использовать location.reload()
для перезагрузки страницы:
ob = document.getElementById("first");
ob.addEventListener("click", change);
function change() {
item = document.getElementById("first");
item.value = "second";
item.id = "second";
ob = document.getElementById("second");
ob.addEventListener("click", previous);
}
function previous() {
location.reload();
}
<input id="first" type="button" value="first">
Однако, если вы просто хотели сделать это:
<input id="second" type="button" value="second">
В это:
<input id="first" type="button" value="first">
Внутри вашей функции previous()
все, что вам нужно сделать, это сделать так, чтобы ваша функция previous()
выглядела так:
function previous() {
item = document.getElementById("second");
item.value = "first";
item.id = "first";
ob = document.getElementById("first");
ob.addEventListener("click", change);
}
(Я структурировал previous()
почти так же, как change()
чтобы сделать его проще для целей отладки)
После того, как весь ваш код был изменен и улучшен, окончательный рабочий фрагмент выглядит следующим образом:
var ob = document.getElementById("first");
ob.addEventListener("click", change);
function change() {
item = document.getElementById("first");
item.value = "second";
item.id = "second";
ob = document.getElementById("second");
ob.addEventListener("click", previous);
}
function previous() {
item = document.getElementById("second");
item.value = "first";
item.id = "first";
ob = document.getElementById("first");
ob.addEventListener("click", change);
}
<input id="first" type="button" value="first">
Надеюсь, это поможет!