Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 31.01.2017, 12:02
Аспирант
Отправить личное сообщение для dantist433 Посмотреть профиль Найти все сообщения от dantist433
 
Регистрация: 21.02.2016
Сообщений: 37

Но я разобрался, спасибо за подсказку
у меня же есть
window.addEventListener('DOMContentLoaded', function())

вот в эту функцию и запихнул.
Ответить с цитированием
  #12 (permalink)  
Старый 31.01.2017, 13:44
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от dantist433
я разобрался
Все равно, что-то мне подсказывает, что ты роешь подземный ход на чердак...
Ответить с цитированием
  #13 (permalink)  
Старый 31.01.2017, 22:55
Аспирант
Отправить личное сообщение для dantist433 Посмотреть профиль Найти все сообщения от dantist433
 
Регистрация: 21.02.2016
Сообщений: 37

Сообщение от ksa Посмотреть сообщение
Все равно, что-то мне подсказывает, что ты роешь подземный ход на чердак...
Все может быть
привел код в более менее понятный вид
var max_population=Array (16,5,4);

for (var i = 0; i < 3; i++)
{    
window.addEventListener('DOMContentLoaded', function() 
   {
   
   inp2 = document.createElement( 'input' );
   inp2.type = 'button';
   inp2.name = 'input_2';
   inp2.id = 'max_unit'+i;
   inp2.value = max_population[i];
   document.getElementById( 'units' ).appendChild( inp2 );
      
   var address = document.getElementById('max_unit'+i);
   var favoriteAddress = document.getElementById('unit'+i) ;
   
   if (address.value!=0)
   {   document.getElementById('max_unit'+i).onclick = function() {favoriteAddress.value=address.value ;address.value=0;  }   
   }
   else
    {   document.getElementById('max_unit'+i).onclick = function() {address.value=favoriteAddress.value ;favoriteAddress.value=5;  }  
    }

var form = document.querySelector('form');
form.addEventListener('input', function(e)
{
var el = e.target;                                                                      
el.classList.contains ('text'+i) && el.classList[ (el.value>max_population[i])?'add':'remove'] ('RedText'); 
});
});
}

<form name = "units" method="post" id="units" action="timers/units_t.php"  onsubmit="return validate_form ( );">
<table>

<tr>
<td>111</td><td>111</td><td>111</td><td> <input class="text0" size="3" id="unit0" name = 'unit0'></td><td></td>
</tr>
<tr>
<td>222</td><td>222</td><td>222</td><td> <input class="text1" size="3" id="unit1" name='unit1'></td><td></td>
</tr>
<tr>
<td>333</td><td>333</td><td>333</td><td> <input class="text2" size="3" id="unit2" name='unit2'></td><td></td>
</tr>
</table>
 <p><input type="submit"></p>
 </form>


И тут возникло сразу 2 вопроса:
1. Такое чувство что переменная i из for не передается в функцию, как это исправить???
Так как max_population[i] у меня получается undefined, а перед функцией все норм
2. Когда она передается(а у меня через PHP она передается) то при 1 нажатии значения передаются в инпут, а при повторном нажатии не передается обратно, как будто это условие не отрабатывает
if (address.value!=0)
   {   document.getElementById('max_unit'+i).onclick = function() {favoriteAddress.value=address.value ;address.value=0;  }   
   }
   else
    {   document.getElementById('max_unit'+i).onclick = function() {address.value=favoriteAddress.value ;favoriteAddress.value=5;  }  
    }

опять же вопрос почему?
Ответить с цитированием
  #14 (permalink)  
Старый 01.02.2017, 08:54
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от dantist433
Все может быть
Для меня считается аксиоматичным следующий факт. Если страница формируется серверным скриптом, то нет особого смысла генерить еще и функции, которые "доделают" ее еще и не клиенте.
Это все может сделать мощный сервер сразу. Без всякой нагрузки на клиент.

У тебя же получается какая-то каша, в которой ты путаешься сам.

Совет еще такой...
Сначала сделай сам хтмл и JS который будет в итоге. Если все там заработает как нужно - можно переходить к генерации этого хтмл и JS.
А пока ты гененрируешь то, что даже не понимаешь чего получается в итоге и как потом это все работает.

Твои вопросы получаются из серии "Я вот тут чего-то нагененрил... Но оно не работает или работает как то так, что мне не понятно..."
А ты должен четко понимать чего ты там генеришь.
Т.ч. начни все с простых хтмл и JS. Сделаешь там - пробуй генерить серверным скриптом.
Ответить с цитированием
  #15 (permalink)  
Старый 01.02.2017, 10:53
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

dantist433,
Сообщение от dantist433
Такое чувство что переменная i из for не передается в функцию, как это исправить???
Цикл должен быть включен в
window.addEventListener('DOMContentLoaded', function() 
   {
});

а не наоборот, как у вас
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обработчик событий для динамически добавленных элементов Tecvid Events/DOM/Window 28 25.06.2018 13:49
Записать значения DIV в массив allonemoon Events/DOM/Window 3 06.08.2016 05:18
Записать значения DIV в массив allonemoon Events/DOM/Window 0 06.08.2016 01:23
Как вывести свойства div значения которых равно 1? sovsem-nub Events/DOM/Window 8 16.04.2015 13:12
Послать значения из разных div в виде строки Timuchen AJAX и COMET 4 25.08.2014 00:24