Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Неопределенное число кнопок (https://javascript.ru/forum/misc/50685-neopredelennoe-chislo-knopok.html)

wadim 07.10.2014 16:49

Неопределенное число кнопок
 
Привет всем! Подскажите. Нужно создать div с прокруткой по оси y. Это без проблем. В это окно нужно добавлять неопределенное число кнопок. Типа:
<input type='button' value='купить' onclick=" Pocupca(p); ">

Pocupca(p,p2) - это функция js с параметром, параметр для каждой кнопки должен быть разным, то есть:

<input type='button' value='купить' onclick=" Pocupca(0); ">
<input type='button' value='купить' onclick=" Pocupca(1); ">
...
<input type='button' value='купить' onclick=" Pocupca(999); ">

Параметры берем из массива js: arr[0,1, ... 999]

Получается что из js приложения мы жмем на кнопки, которые находятся в окне div и там как бы в функции Pocupca() уже должны быть подставлены параметры. Кроме того число кнопок должно быть равным числу элементов массива arr[]. Свои наброски кода публиковать не буду, так как все они далеки от истины.

Aetae 07.10.2014 16:57

div.innerHTML = 
  '<input type="button" value="купить" onclick=" Pocupca(' + 
  arr.join( '); "><input type="button" value="купить" onclick=" Pocupca(' ) + 
  '); ">'

wadim 07.10.2014 17:06

<style>
.layer {
display : blok;
height: 145px; /* Высота блока */
width: 177px; /* Ширина блока */
overflow-y: scroll;
background: #F0F8FF; /* Цвет фона */
padding: 0px; /* Поля вокруг текста */
border: 1px solid #333; /* Параметры рамки */
}
</style>


<div id='my_div' class='layer' style='position: absolute; top: 30px; left: 15px'>
</div>


<script>
arr[0]=0;
arr[1]=1;


div.innerHTML =

'<input type="button" value="купить" onclick=" Pocupca(' +

arr.join( '); "><input type="button" value="купить" onclick=" Pocupca(' ) +

'); ">'


</script>

НЕ РАБОТАЕТ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!

Aetae 07.10.2014 17:33

А с чего бы оно должно? Искусственный интеллект ещё не изобрели, чтоб он понимал любой бред что вы напишите.
Извольте пока писать код по правилам выбранного языка программирования.

var arr = [0, 1];
var div = document.getElementById('my_div');
div.innerHTML =
'<input type="button" value="купить" onclick=" Pocupca(' +
arr.join( '); "><input type="button" value="купить" onclick=" Pocupca(' ) +
'); ">'

wadim 07.10.2014 18:00

Для моего понимания я пишу код так как мне удобней, знаю что могут быть проблемы, но то ли современным браузерам по фиг, то ли что - но все работает. На счет массива не спорю, сейчас проверять желания нет. Массив исправил. Снова не работает. Напишите пожалуйста в том оформлении какое Вам удобно. Но боюсь не заработает. По идее уже 2 кнопки должны были нарисоваться, а их нет. Кроме того поправка: число кнопок должно быть длина массива/2. Еще перед кнопкой должен быть тест, перед каждой кнопкой один и тот же:

текст
кнопка
текст
кнопка 2

Вот такой вид нужен.

Еще ошибку нашел свою вместо div пишем my_div. Теперь my_div.innerHTML способен выводить инфу, но вот '<input type="button" value="купить" onclick=" Pocupca(' +

arr.join( '); "><input type="button" value="купить" onclick=" Pocupca(' ) +

'); ">' -напрочь не хочет, ошибка в этом коде.

Aetae 07.10.2014 18:27

Цитата:

ошибка в этом коде.
Ошибка в ДНК, Вадим.
<style>
.layer {
display : blok;
height: 145px; /* Высота блока */
width: 177px; /* Ширина блока */
overflow-y: scroll;
background: #F0F8FF; /* Цвет фона */
padding: 0px; /* Поля вокруг текста */
border: 1px solid #333; /* Параметры рамки */
}
</style>


<div id='my_div' class='layer' style='position: absolute; top: 30px; left: 15px'>
</div>


<script>
var arr = [0, 1];
var div = document.getElementById('my_div');
div.innerHTML =
'<input type="button" value="купить" onclick=" Pocupca(' +
arr.join( '); "><input type="button" value="купить" onclick=" Pocupca(' ) +
'); ">'
</script>
Поправки можете оставить при себе. Писать за вас или учить вас основам - желания нет.

wadim 07.10.2014 20:05

С выше поставленными вопросами разобрался. Теперь надо усложнить код.
У функции Pocupca(P,P2) теперь два параметра, P- 1 элемент массива, P2 - второй, далее аналогично, P - 3 элем., P2 - 4 элемент массива. Сразу не писал про два параметра, так как думал если с одним разобраться - то со вторым проблем не будет, сам пока не очень думал над темой, мож кто ответит до завтра. Пишу сразу о проблеме, так как не уверен что завтра разберусь, а времени слишком долго разбираться нет.


Часовой пояс GMT +3, время: 00:13.