Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.06.2011, 19:37
Интересующийся
Отправить личное сообщение для Santiago Посмотреть профиль Найти все сообщения от Santiago
 
Регистрация: 11.03.2011
Сообщений: 14

Ошибка в коде - добавления блока с выпадающими списками
Добрый день, пытаюсь написать код, но пока никак не получается, уже не знаю как быть... сам я новичок, поэтому очень надеюсь на вашу помощь. Если есть у кого соображения, поделитесь...
Суть вот в чем:
На вложенном рисунке я показал чего хочу добиться.
Есть два выпадающих списка и кнопка "add". При нажатии на неё в низу должно появляться точно такое же, но с кнопкой "del" и так 10 штук и соответственно при нажатии этой кнопки списки выпадающий должны исчезать.
И все это находится в тегах <table></table>. Слева от списков находятся названия их. (на рисунке не показана)
вот что я сам написал, но ничего не работает.
JS
$(function(){
$('.add').click(function(){
$('boxLevel').show();	
});
$(function(){
$('.del').click(function(){
$('boxLevel').hide();	
}); 
}); 
});


HTML
<div id="boxLevel">
<select name="name" id="name"">
<option value="1">1</option>
<option value="2"> 2 </option>
<option value="3"> 3 </option>
</select>
-
 <select name="family" id="family">
<option value="1"> 1 </option>
<option value="2"> 2 </option>
<option value="3"> 3 </option>
</select>
<span class="add"><a href="">add</a></span>
</div>
Изображения:
Тип файла: jpg settings personal.jpg (51.5 Кб, 5 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 26.06.2011, 13:04
Аватар для SkyLight
Злюка-бобер
Отправить личное сообщение для SkyLight Посмотреть профиль Найти все сообщения от SkyLight
 
Регистрация: 21.03.2010
Сообщений: 438

И не будет, т.к. куча ошибок. Во-первых, что за $('boxLevel')? Решетка где? Во-вторых, секция $('.del').click(...) не сработает хотя бы потому, что у вас нет такого элемента.

Вам нужно при клике на add дублировать ваши два селекта и при этом нужно менять id копий, т.к. на странице не может быть двух элементов с одним id. При клике на del удалять строку.
__________________
In WEB We Trust
У всех есть своя темная сторона...
Ответить с цитированием
  #3 (permalink)  
Старый 26.06.2011, 15:17
Интересующийся
Отправить личное сообщение для Santiago Посмотреть профиль Найти все сообщения от Santiago
 
Регистрация: 11.03.2011
Сообщений: 14

Cо всеми ошибками я разобрался, спасибо.
При нажатии "add" у меня добавлят сразу столько строк, сколько изначально было написано в html'е и спрятано, путем CSS ( "display:none" ).
А как сделать, чтобы при каждом нажатии добавляась только одна строчка... ? Нужно прописывать какое-то условие?
Ответить с цитированием
  #4 (permalink)  
Старый 26.06.2011, 17:24
Аватар для SkyLight
Злюка-бобер
Отправить личное сообщение для SkyLight Посмотреть профиль Найти все сообщения от SkyLight
 
Регистрация: 21.03.2010
Сообщений: 438

В том коде, что у вас приведен выше, вы вообще ничего не добавляете. Вы показываете/скрываете имеющиеся. Попробуйте именно создавать новые элементы. Например, с помощью clone
__________________
In WEB We Trust
У всех есть своя темная сторона...
Ответить с цитированием
  #5 (permalink)  
Старый 27.06.2011, 01:15
Интересующийся
Отправить личное сообщение для Santiago Посмотреть профиль Найти все сообщения от Santiago
 
Регистрация: 11.03.2011
Сообщений: 14

Посоветовали этот вариант, но тоже так и не заработал...
row = $('<div class="boxLevel">
  <select name="name" id="name"">
  бла-бла-бла
  <span class="delete"><a href="">delete</a></span>
  </div>');
  
row.find('.delete').click(function(){
  $(this).closest('.boxLevel').remove();
  return false;
});
 
$('.add').click(function(){
  $(<во что вставить>).append(row.clone());
  return false;
});
Ответить с цитированием
  #6 (permalink)  
Старый 29.06.2011, 19:57
Интересующийся
Отправить личное сообщение для Santiago Посмотреть профиль Найти все сообщения от Santiago
 
Регистрация: 11.03.2011
Сообщений: 14

row = $('<div class="boxLevel">
  <select name="name" id="name"">
  бла-бла-бла
  <span class="delete"><a href="">delete</a></span>
  </div>');
  
row.find('.delete').click(function(){
  $(this).closest('.boxLevel').remove();
  return false;
});
 
$('.add').click(function(){
  $('.sometable .elements-con').append(row.clone());
  return false;
});


Код сам рабочий, но почему то при нажатии delete - убирает все списки выпадающие, а не только то что напротив...
в чем может быть причина, подскажите.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в коде (Sandr) Общие вопросы Javascript 5 23.06.2011 01:42
Ошибка в коде Js, Неправильно работает скрипт. Julia Panatova Общие вопросы Javascript 1 19.01.2011 14:12
Ошибка в коде Js, Неправильно работает скрипт. Julia Panatova Общие вопросы Javascript 7 07.01.2011 13:41
Ошибка в коде Nets Ваши сайты и скрипты 3 25.09.2009 21:18
То-ли лыжи не едут, толи... возможно ошибка в коде. AzriMan Общие вопросы Javascript 19 18.05.2009 16:07