Показать сообщение отдельно
  #1 (permalink)  
Старый 17.04.2009, 10:24
Новичок на форуме
Отправить личное сообщение для fact Посмотреть профиль Найти все сообщения от fact
 
Регистрация: 17.04.2009
Сообщений: 5

Объект при загрузке страницы и после операций над ним
Пишу плагин для работы с деревом сайта.

Объекты $('#elements') и $('#treeview') при загрузке забирают в себя списки #elements и #treeview, после нажатия кнопки cut, элемент li списка #treeview переносится в список '#elements', но объект $('#elements') не воспринимает перенесенный li своим(то есть по нему нельзя кликнуть и выделить).

Вопрос, как переинициализировать объект $('#elements'), чтобы он считал перенесенные li своими?

До нажатия кнопки:
<ul id="treeview">
<li><span>пункт 1</span></li>
<li><span>пункт 2</span>
<ul>
   <li><span>пункт 2.1</span></li>
   <li><span>пункт 2.2</span></li>
   <li><span>пункт 2.3</span></li>
</ul>
</li>
<li><span>пункт 3</span></li>
</ul>


<ul id="elements">
<li><span>пункт 1</span></li>
<li><span>пункт 2</span></li>
<li><span>пункт 3</span></li>
</ul>


После нажатия кнопки:
<ul id="treeview">
<li><span>пункт 1</span></li>
<li><span>пункт 2</span>
<ul>
   <li><span>пункт 2.1</span></li>
   <li><span>пункт 2.3</span></li>
</ul>
</li>
<li><span>пункт 3</span></li>
</ul>


<ul id="elements">
<li><span>пункт 1</span></li>
<li><span>пункт 2</span></li>
<li><span>пункт 3</span></li>
<li><span>пункт 2.2</span></li>
</ul>


(function($) {
	selectNode = function(obj) {
	var foo = $('li>span',obj);
	$(foo).bind('click', function()
	{
			if ($(this).hasClass('selected')) {
				$(this).removeClass('selected');
			}
			else {
				$(obj).find('span').removeClass('selected'),
				$(this).addClass('selected')
			}
	})};
		
	cut = function(){
		$("button[value='cut']").click(function(){
			var selectedSpan = $('#treeview').find('span.selected');
			var currentLi = selectedSpan.parent('li').removeClass();
			currentLi.remove().appendTo('#elements');
		});
	}
	
	$.fn.editTreeView = function() {
			
		cut();
		selectNode ($('#treeview'));
		selectNode ($('#elements'));
};})(jQuery);
Ответить с цитированием