Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.12.2018, 13:42
Аспирант
Отправить личное сообщение для Tipylja Посмотреть профиль Найти все сообщения от Tipylja
 
Регистрация: 17.04.2017
Сообщений: 60

Создание объекта по событию и наполнение его
Здравствуйте. Есть обработчик события на клике по элементу. В этой функции необходимо получать значения с инпутов и записывать их в объект, тем самым наполняя его, вот код:
const names = {};
addButton.addEventListener('click', () => {
    let name = addNameInput.value;
    let value = addValueInput.value;        
    names[name] = value;
    console.log(names);

});


Но сам объект я создаю вне обработчика события, а мне нужно что бы он создавался внутри, создавался только при первом клике, то есть когда его действительно нет, а при последующих кликах он просто наполнялся новыми строками. Подскажите, как можно так сделать?
Ответить с цитированием
  #2 (permalink)  
Старый 09.12.2018, 17:37
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,602

<div id="addButton">111</div>
	<script>
		var names;
		addButton.addEventListener('click', ()=>{
			console.log(names) //для демонстрации
			if(!names) names = {};
			//...добавляйте свойства
		});
	
	</script>
Ответить с цитированием
  #3 (permalink)  
Старый 09.12.2018, 23:19
Аспирант
Отправить личное сообщение для Tipylja Посмотреть профиль Найти все сообщения от Tipylja
 
Регистрация: 17.04.2017
Сообщений: 60

Не совсем понял разницы. names точно так же как и в моем коде, объявляется вне обработчика. Мне нужно этот names создать внутри обработчика, если клик идет в первый раз, а при последующих кликах просто заполнять в уже существующий объект. Что типа такого:
addButton.addEventListener('click', () => {
    let name = addNameInput.value;
    let value = addValueInput.value;
    if(!names) {
        var names = {};
        names[name] = value;
   }else{
        names[name] = value;
   }

});
Ответить с цитированием
  #4 (permalink)  
Старый 10.12.2018, 01:25
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,602

Сообщение от Tipylja
Но сам объект я создаю вне обработчика события, а мне нужно что бы он создавался внутри,
объект это объект, про объявления переменной речи не шло.
<div id="addButton">111</div>
	<script>
addButton.addEventListener('click', () => {
    if(!window.names) {
       names = {};
   }
   else{
        console.log('else');
   }
});
</script>

только разницы никакой где объявлять
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обратиться к переменной внутри объекта, в произвольной функцию через его метод platedz Элементы интерфейса 15 24.08.2012 23:03
случайно (из заданого) менять текст и его цвет по событию Mousemove hankmoody Events/DOM/Window 7 12.11.2010 13:23
Обработка события элемента внутри создавшего его объекта pauluss Общие вопросы Javascript 10 10.09.2010 16:01
Создание копий объекта - обязателен ли prototype? heh131 Общие вопросы Javascript 12 15.05.2010 11:55
Можно ли получить имя экземпляра объекта внутри самого объекта? Ichigeki Общие вопросы Javascript 9 14.11.2008 18:00