Нужна помощь в создании простого текстового редактора:
Текст отображается на экране
Нажмите на текст, чтобы изменить его
Нажмите кнопку изменения, чтобы увидеть изменения
но программа идет бесконечно долго
var creators = {
hTag :function(textToInput){
var h1 = document.createElement('h1');
var div = document.getElementById('main');
div.innerHTML = '';
h1.id = 'userText';
h1.textContent = textToInput;
div.appendChild(h1);
console.log(div);
listeners.hTagListener();
//document.querySelector('h1');
//hTag.addEventListener('click',this.);
},
changeField :function(){
var input = document.createElement('input');
var button = document.createElement('button');
var div = document.getElementById('main');
div.innerHTML='';
button.id = 'changeButton';
button.textContent = 'Change';
input.id = 'input';
input.type = 'text';
div.appendChild(button);
div.appendChild(input);
listeners.changeButtonListener();
}
};
var listeners = {
hTagListener : function(){
var h1Print = document.querySelector('h1');
h1Print.addEventListener('click',creators.changeField());
console.log('added event listener');
},
changeButtonListener : function(){
var but = document.getElementById('changeButton');
var inputText = document.getElementById('input');
console.log(inputText.value);
but.addEventListener('click',creators.hTag(inputText.value));}
};
creators.hTag('initialValue');
и мой основной HTML-код
<body>
<br>
<br>
<div id="main">
</div>
<script src="/script.js" defer></script>
Ожидается:
В последней строке javascript тег заголовка добавляется к div
у которого есть textContent 'initialValue'.
После нажатия на него:
Текстовое поле и кнопка изменения должны появиться,
при нажатии на кнопку изменения, новое значение должно отображаться как заголовок!
Фактически:
Программа идет по бесконечному циклу!