@sophiko

Как связать события, Jquery?

Добрый день,

помогите пожалуйста,
у меня есть табличка, в ней строчка, в строчке две кнопочки.
Нажимаешь на кнопочку - в ту же строку вводятся данные и появляется окошко, там нужно в инпут ввести еще данные, нажать на кнопку уже в окошке, после чего окно закрывается и данные вносятся автоматически в ТУ ЖЕ САМУЮ строку таблицы. Окно открывается и закрывается с помощью другого параллельного кода для окна.

То есть сейчас есть:
$(".btn-finish").click(function(){
	
	$(this).parent().parent().find('td').eq(1).html('Завершена');
	
});

Можно ли как-то это присоединить к первому коду:
$("#modal-btn-finish").on("click", function(){
	var t = $("#input").val();
	$(this).parent().parent().find('td').eq(4).html(t);
	
	});

? Как связать эти события. Или как лучше решить эту задачу.
  • Вопрос задан
  • 2608 просмотров
Решения вопроса 1
DeLaVega
@DeLaVega
Верстаю, фронтэндю =)
На самом деле не совсем понятно...)) Но одно ясно точно, по дому так перемещаться оооочень не хорошо. Если кнопки у вас рядом лежат, то вы можете воспользоваться селектором .siblings() - то есть соседний элемент. А лучше выложите это на jsfiddle или хотя бы покажите макет и хтмл.

Или вот так, если я правильно всё таки понял..))

$(".btn-finish, #modal-btn-finish").on("click", function(){
	var _text = $("#input").val(),
		_td = $(this).parent().parent().find('td');

	if ( _text !== "" ){
		_td.eq(4).html(t);
	} else {
		_td.eq(1).html('Завершена');
	}
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Такую конструкцию
$(this).parent().parent().find('td')
лучше заменить на
$(this).parents('td')

Тогда при изменении верстки (добавление еще одного слоя, например) - скрипты не придется переписывать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы