Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 02.06.2015, 19:13
Аспирант
Отправить личное сообщение для indeterm Посмотреть профиль Найти все сообщения от indeterm
 
Регистрация: 26.05.2015
Сообщений: 43

<html>
<head>
<meta charset="windows-1251" />
</head>
<body>

<div id="selects"></div>
<div id="out"></div>

<script>

SubObject={
clone: function(){
  var o=Object.create(this)
  if(this.init) this.init.call(o)
  return o
 },
 extend: function(o){
  for(var i in o) {if(!o.hasOwnProperty(i)) return this; this[i]=o[i]} return this
 }
}

Select=SubObject.clone()
Select.extend({
 init: function(){
  this.self=document.createElement("select")
  this.self.onchange=function(){this.setChild()}.bind(this)
  this.parent=selects
},
 append: function(){this.parent.appendChild(this.self); return this},
 setChild: function(){
   if(this.child) this.parent.removeChild(this.child.self)
   this.child=Select.clone()
   this.child.setValues(window[this.self.value])
   this.child.self.onchange=function(){out.innerHTML=this.value}
   this.child.self.onchange()
   this.child.append()
   return this
 },
 setValues: function(values){
   for(var i in values) {
    if(!(values.hasOwnProperty(i))) return this; this.self.appendChild(new Option(values[i], i))
   }
   return this
 }
})

main={
 hardDrive: "жесткий диск",
 videoCard: "видеокарта",
 audioCard: "аудиокарта"
}

hardDrive={
 "$1": "отремонтировать XHard",
 "$2": "отремонтировать YHard", 
 "$3": "отремонтировать ZHard", 
}
videoCard={
 "$10": "отремонтировать XVideo",
 "$20": "отремонтировать YVideo", 
 "$30": "отремонтировать ZVideo", 
}
audioCard={
 "$100": "отремонтировать XAudio",
 "$200": "отремонтировать YAudio", 
 "$300": "отремонтировать ZAudio", 
}

select=Select.clone()
select
 .setValues(main)
 .append()
 .setChild()




</script>

</body>
</html>
Ответить с цитированием
  #12 (permalink)  
Старый 02.06.2015, 19:34
Интересующийся
Отправить личное сообщение для bloodmoneys Посмотреть профиль Найти все сообщения от bloodmoneys
 
Регистрация: 01.06.2015
Сообщений: 12

laimas,
Полностью согласен, но, это лендинг пэйдж и позиций всего 4 и должно быть всё быстро и динамично.
indeterm, Спасибо большое за готовое решение, буду теперь разбираться как это работает)
Ответить с цитированием
  #14 (permalink)  
Старый 02.06.2015, 21:03
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от bloodmoneys
Полностью согласен, но, это лендинг пэйдж и позиций всего 4 и должно быть всё быстро и динамично.
Да хоть сотня позиций, все равно будет динамично.

А вообще-то все это странно. Можно установить фиксированные цены за услуги, временные затраты на которые и расходные комплектующие заблаговременно известны. Иначе просто перечень услуг без цен. Ну к примеру, обращаются по причине отсутствия изображения на экране. Каким образом хозяин устройства не имеющий понятия в электронике может знать, что причиной служит видео карта, а не иное? А если, к примеру, взять ноутбук еще с подсветкой ламповой, то могут быть виновны и видео карта, и ВВ преобразователь, и лампа подсветки, а значит менять матрицу, и цены то у комплектующих разные.

В общем подозрительная контора получается.
Ответить с цитированием
  #15 (permalink)  
Старый 02.06.2015, 21:48
Аспирант
Отправить личное сообщение для indeterm Посмотреть профиль Найти все сообщения от indeterm
 
Регистрация: 26.05.2015
Сообщений: 43

Сообщение от laimas
все равно будет динамично.
Динамично то будет(в смысле интерактивно), а вот то что быстро -- не факт. И сервак лишний раз без нужды дергать нах не вперлось.
Ответить с цитированием
  #16 (permalink)  
Старый 02.06.2015, 21:53
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

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

Получение списков адресов, это вообще тысячи записей, ну и не так долго ответ ждать приходится, да и мера эта вынужденная.
Ответить с цитированием
  #17 (permalink)  
Старый 03.06.2015, 09:20
Интересующийся
Отправить личное сообщение для bloodmoneys Посмотреть профиль Найти все сообщения от bloodmoneys
 
Регистрация: 01.06.2015
Сообщений: 12

laimas,
Просто сама концепция лендинг пэйджа такая, что главное в нём это что-бы пользователь оставил заявку на консультацию. А в скрипте только явные позиции, а если нет такой позици, то вот пожалуйста вам кнопочка заявки консультации.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать так чтобы ajax возвращал результат? Rooner AJAX и COMET 7 28.06.2013 12:42
Проблемы с div обновлённым через (#id).load erlcat jQuery 4 03.03.2013 03:41
animate, всплывающий div box сделать по центру zero_mod jQuery 1 27.10.2010 00:23
div - затемнялка под div- кнопка, как сделать? webmonster2008 Общие вопросы Javascript 2 30.07.2010 17:09
Сделать Плавно выдвигающиеся DIV pavdin Общие вопросы Javascript 2 02.07.2010 16:17