Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.03.2013, 21:53
Аватар для spo
spo spo вне форума
Профессор
Отправить личное сообщение для spo Посмотреть профиль Найти все сообщения от spo
 
Регистрация: 11.05.2011
Сообщений: 213

Удаление столбцов таблицы. Вопросы.
Здравствуйте.
Нашел в интернете пример удаления столбцов в таблице (http://www.bloj.ru/wordpress/del_colums.html и http://stackoverflow.com/questions/1...l-table-column), попытался разобраться, но возник ряд вопросов на которые не могу найти ответ самостоятельно.

Оригинал:

$("a.delete").live("click", function(){
	var myIndex = $(this).closest("td").prevAll("td").length;
	$(this).parents("table").find("tr").each(function(){
		$(this).find("td:eq("+myIndex+")").animate({width: "0"}, 1000, function(){
			$(this).remove();
			fixTitles();
		});
	});
});

function fixTitles() {
	$("tr:eq(0) td").each(function(a){
		$(this).html("<a href='#' class='delete'>Delete Row</a> COL " + (a+1));
	});
}


Вот рабочий код который я немного изменил добавив одно условие:
(function($) {

	$("a.delete").live("click", function() {
		var myIndex1 = $(this).closest("td").prevAll("td").length;
		var myIndex2 = $(this).closest("tr").find("td").length;
		if(myIndex2 > 1) {
			$(this).parents("table").find("tr").each(function() {
				$(this).find("td:eq("+myIndex1+")").animate({opacity: 0, width: 0}, 'slow', function(){
					$(this).remove();
					$("tr:eq(0) td").each(function(a) {
						$(this).html("<a href='#' class='delete'>Delete col</a> "+(a+1));
					});
				});
			});
		} else {
			$(this).parents("table").animate({opacity: 0, width: 0}, 'slow', function(){
				$(this).remove();
			});
		}
		return false;
	});
	
})(jQuery);


1. Зачем в оригинальном примере следующий код был вынесен в отдельную функцию:

$("tr:eq(0) td").each(function(a) {
						$(this).html("<a href='#' class='delete'>Delete col</a> "+(a+1));
					});


2. Почему если вынести данный код за пределы animate, то он срабатывать не будет?

3. Для чего используется live и почему если заменить его на click то событие не срабатывает?

HTML:
<table>
		<tr>
			<td><a href="#" class="delete">Delete col</a> 1</td>
			<td><a href="#" class="delete">Delete col</a> 2</td>
			<td><a href="#" class="delete">Delete col</a> 3</td>
			<td><a href="#" class="delete">Delete col</a> 4</td>
			<td><a href="#" class="delete">Delete col</a> 5</td>
			<td><a href="#" class="delete">Delete col</a> 6</td>
		</tr>
		<tr>
			<td>row 1</td>
			<td>row 1</td>
			<td>row 1</td>
			<td>row 1</td>
			<td>row 1</td>
			<td>row 1</td>
		</tr>
		<tr>
			<td>row 2</td>
			<td>row 2</td>
			<td>row 2</td>
			<td>row 2</td>
			<td>row 2</td>
			<td>row 2</td>
		</tr>
	</table>
Ответить с цитированием
  #2 (permalink)  
Старый 11.03.2013, 22:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

spo,
Ссылки в первой строке таблицы каждый раз перезаписываются после удаления столбца, если ненавесить снова клик, ничего несработает, live обеспечивает привязку клика к новым элементам. сейчас live это on.
Ответить с цитированием
  #3 (permalink)  
Старый 11.03.2013, 23:08
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от spo
Удаление столбцов таблицы. Вопросы.
Ох эти таблицы
Ответить с цитированием
  #4 (permalink)  
Старый 12.03.2013, 00:58
Аватар для spo
spo spo вне форума
Профессор
Отправить личное сообщение для spo Посмотреть профиль Найти все сообщения от spo
 
Регистрация: 11.05.2011
Сообщений: 213

Благодарю, рони, Deff.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое удаление строк таблицы Tankist Events/DOM/Window 16 03.07.2013 16:42
Через ajax отправить много данных из таблицы на сервер Heger jQuery 3 29.08.2012 18:51
Группировка заголовков столбцов таблицы. ExtJS 4.1. Eugent ExtJS 0 02.05.2012 11:40
Подсветка столбцов таблицы ctocopok Элементы интерфейса 31 14.06.2011 01:42
ширина столбцов таблицы после загрузки bis Events/DOM/Window 1 26.03.2010 18:35