Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.04.2010, 11:41
Аспирант
Отправить личное сообщение для frolvict Посмотреть профиль Найти все сообщения от frolvict
 
Регистрация: 03.04.2010
Сообщений: 74

Добавление элементов при нажатии
День добрый!
Возникла проблемка небольшая, прошу помочь решить ее.
У меня есть код

<ul id="cat01">
Категории
	<li id="pcat01">Подкатегории</li>
</ul>


я хочу сделать чтоб при нажатии на категориию или кнопку появлялась еще одна категория, но с следующим ид cat02 и при нажатии на подкатегорию появлялись подкатегории тоже со следующим ид pcat="pcat02" и так чтоб можно было добавлять и добавлять.
Сейчас написал вот такой вот код для добавления

<script type="text/javascript">
  
  $(document).ready(function(){
  
  $("li").click(function(){
  $("li").append("<li> Hello!</li>");
  });
  
  $("ul").click(function(){
  $("ul").append("<ul> Hello!</ul>");
  });
  
  });
  
  </script>


Но он почему-то добавляет не по одной категории и подкатегории, а сразу по многу и ид там не меняется. Подскажите плизз как можно реализовать задачу?
Ответить с цитированием
  #2 (permalink)  
Старый 05.04.2010, 12:20
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

а чего ты li засовываешь в li, ul - в ul? Где ты меняешь id? И почитай про всплывание событий
Ответить с цитированием
  #3 (permalink)  
Старый 05.04.2010, 12:37
Аспирант
Отправить личное сообщение для frolvict Посмотреть профиль Найти все сообщения от frolvict
 
Регистрация: 03.04.2010
Сообщений: 74

Исправил на это

<script type="text/javascript">
   
  $(document).ready(function(){

  $("ul").click(function(){
  $("li").append("<ul> Hello!</ul>");
  });
   
  });
  </script>


Но почему-то добавляется по 2 <ul> Hello!</ul> при клике
А вот насчет как менять ид, хотел узнать, как это можно сделать?
Подскажите плиззз!
Ответить с цитированием
  #4 (permalink)  
Старый 05.04.2010, 13:12
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

почему добавляются 2 <ul> Hello!</ul> из твоего кода непонятно. Либо дай ссылку на страничку, либо прикрепи к сообщению

также непонятно, почему ты в ul текст записываешь, там только li могут быть. И почему ты ul в li добавляешь. Тебе это нужно? Я думал тебе нужно добавлять еще одну такую же категорию, а не создавать подкатегорию (категории, на которой кликнули)

по поводу менять id, а точнее назначать
'<ul id="cat'+id+'" Hello!</ul>'
чтобы вычислить id тебе надо будет найти уже существующие категории, определить их максимальный id и увеличить его на единицу
Ответить с цитированием
  #5 (permalink)  
Старый 05.04.2010, 13:36
Аспирант
Отправить личное сообщение для frolvict Посмотреть профиль Найти все сообщения от frolvict
 
Регистрация: 03.04.2010
Сообщений: 74

Вот вроде с добавлением разобрался, но как можно сделать чтоб подкатегория добавлялась именно для выделенной категории? Сейчас добавляется только для первой

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <script src="http://code.jquery.com/jquery-latest.js"></script>
 
 <script type="text/javascript">
 
 $(document).ready(function(){
 	
 	// добавляем действия для кнопки Добавить категорию
 	$("#addCat").click(function(){
 	
 		$("ul:first").after("<ul><li><label><input type='checkbox' />Новая категория</label></li></ul>");
 	
 	}); //--закрытие addCat click
 	
 	// добавляем действие для кнопки Добавить подкатегорию
 	$("#addPcat").click(function(){
 	
 		$("li:first").after("<ul><li><label><input type='checkbox' />Новая подкатегория</label></li></ul>");
 	
 	}); //--закрытие addPcat click
 
 }); //--закрытие document ready
 
 </script>
 
</head>
<body>
<button id="addCat">Добавить категорию</button>
<button id="addPcat">Добавить подкатегорию</button>
		<ul id="tree">
			<li>
				<label>
					<input type="checkbox" />Категория 01
				</label>
			</li>
			<li>
				<label>
					<input type="checkbox" />Котегория 02
				</label>
				<ul>
					<li>
						<label>
							<input type="checkbox" />Подкатегория 01
						</label>
					</li>
				</ul>
			</li>
		</ul>

</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 05.04.2010, 15:51
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

например, с помощью :checked находишь выделенный checkbox, по нему находишь родительский ul и добавляешь. То же самое, если выделено более одного checkbox'а

только интерфейс какой-то странный. Я бы кнопки добавления как последний элемент списка указывал
Ответить с цитированием
  #7 (permalink)  
Старый 05.04.2010, 15:56
Аспирант
Отправить личное сообщение для frolvict Посмотреть профиль Найти все сообщения от frolvict
 
Регистрация: 03.04.2010
Сообщений: 74

Боксы выборки это я так для примера указал
На самом деле их не будет

<body>
<button id="addCat">Добавить категорию</button>
<button id="addPcat">Добавить подкатегорию</button>
<button id="dellPcat">Удалить подкатегорию</button>
		<ul id="tree">
			<li>
				<label>
					Категория 01
				</label>
			</li>
			<li>
				<label>
					Котегория 02
				</label>
				<ul>
					<li>
						<label>
							Подкатегория 01
						</label>
					</li>
				</ul>
			</li>
		</ul>

</body>


Можно как-то определить какой выбран <label> к примеру?
Чтоб уже к нему добавлять? Или что-то в этом роде?
Ответить с цитированием
  #8 (permalink)  
Старый 05.04.2010, 22:47
Аспирант
Отправить личное сообщение для frolvict Посмотреть профиль Найти все сообщения от frolvict
 
Регистрация: 03.04.2010
Сообщений: 74

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

Селекторы вроде бы пробовал менять , все равно не получается победить ((

Вот страничка с этим скриптом http://jukrim.ee/jquery/
Ответить с цитированием
  #9 (permalink)  
Старый 06.04.2010, 00:15
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

click добавляет обработчики к имеющимся на данный момент элементам. Попробуй live

кроме того не используй селекторы, которые ищут по всему дереву, ограничь их, например, "#tree li label". Да и li здесь лишняя

а вообще я бы назначил обработчик одному родительскому элементу (не проверял, могут быть ошибки)
$('#tree').click( function(e){
    $('label.selected', this).removeClass('selected');
    $(e.target).addClass('selected');
});

или даже
$('#tree').click( function(e){
    $(this.arguments.callee.target).removeClass('selected');
    $(e.target).addClass('selected');
    this.arguments.callee.target = e.target;
});
Ответить с цитированием
  #10 (permalink)  
Старый 06.04.2010, 01:09
Аспирант
Отправить личное сообщение для frolvict Посмотреть профиль Найти все сообщения от frolvict
 
Регистрация: 03.04.2010
Сообщений: 74

Большое спасибо!
Заработало теперь, не догадался бы ни за что что дело в этом click.

А еще вопросик не могли бы уточнить плизз насчет идентификации создаваемых элементов?

-------------------------------------------------------------
по поводу менять id, а точнее назначать
'<ul id="cat'+id+'" Hello!</ul>'
чтобы вычислить id тебе надо будет найти уже существующие категории, определить их максимальный id и увеличить его на единицу
-------------------------------------------------------------

как это можно реализовать? что-то я попробовал но ничего не получилось ((
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
смена картинок при нажатии sdff Общие вопросы Javascript 15 08.02.2014 17:08
Событие onClick при нажатии пункта меню Lex4e Общие вопросы Javascript 1 25.06.2010 18:31
Подгрузка контента в определённый DIV при нажатии на ссылку, без перезагрузки страниц Flashton Events/DOM/Window 0 10.03.2010 19:53
при нажатии - всплывает окно! rabota.kh Общие вопросы Javascript 0 09.03.2010 17:37
Выполнение скрипта при нажатии Entet в текстовм поле Vlasssov Общие вопросы Javascript 4 23.08.2009 23:31