Javascript.RU

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

Функция клика (может и выборка) элесентов с append()
Здравствуйте. Нужно сделать двойную Аякс-функцию (использую библиотеку jQuery). При первом клике - загружается блок div с помощью $("body").append(data), там тег <select> с опциями. Так вот при клике на <option> должна происходить другая функция Аякс.
Проблема в том, что почему-то я не могу выбрать в яваскрипте ни блок, ни <option>, который вставлен с помощью append(). Пробовал сам вручную ставить этот блок в HTML - всё работает.
Помогите пожалуйста, как мне выбрать (сделать функцию клика) на тег (точнее, у <option> у меня есть класс, выбираю по классу, а не по тегу), созданный с помощью append()?
Ответить с цитированием
  #2 (permalink)  
Старый 04.09.2017, 10:04
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Булат Азат улы
Помогите пожалуйста, как мне выбрать (сделать функцию клика) на тег (точнее, у <option> у меня есть класс, выбираю по классу, а не по тегу)
Что за глупости, не опцию выбирают, а обрабатывают событие change списка (select), его значением как раз и будет значение выбранной в нем опции.
Ответить с цитированием
  #3 (permalink)  
Старый 04.09.2017, 10:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,114

Булат Азат улы,
вставили блок , затем поставили change на select.
про клик на option забыть и не вспоминать.
$("body").append(data).find('select').change(function() {

});
Ответить с цитированием
  #4 (permalink)  
Старый 04.09.2017, 10:30
Аспирант
Отправить личное сообщение для Булат Азат улы Посмотреть профиль Найти все сообщения от Булат Азат улы
 
Регистрация: 07.09.2016
Сообщений: 83

рони, laimas,
У меня данные в data были внутри другой функции, который вставляет блок. Поэтому, append(data) тут не работает. Изменил клик на опцию на change - не работает всё равно. Нужно что-то перед .change поставить?
$(".jadwalTD").click(function(){
	$.ajax ({
		url: "/mAjax.php",
		type: "POST",
		data: ({
			mbId: $(this).data("mbId"),
			kurs: $(this).data("kurs"),
			dareslarToima: 1
		}),
		dataType: "html",
		beforeSend: function() {
			$("#floatKotu").fadeIn(50);
		},
		success: function(data) {
			$("#floatKotu").fadeOut(50);
			$("body").append(data); // добавляю тот блок
		}
	});
});
$("#JKonDares").change(function(){ // #JKonDares - это идентификатор select
	$("#floatJadwalKon").remove(); // #floatJadwalKon - это блок, что я добавил в первой функции
	alert($(this).val()); // это для проверки, вывод value опции
	/*$.ajax ({
		url: "/mAjax.php",
		type: "POST",
		data: ({
			mbId: $(this.select).data("mbId"),
			kurs: $(this.select).data("kurs"),
			daresId: $(this).val()
		}),
		dataType: "html",
		beforeSend: function() {
			$("#floatKotu").fadeIn(50);
		},
		success: function(data) {
			$("#floatKotu").fadeOut(50);
			$(".jadwalTD").append(data);
		}
	});*/
});


$('select').change вернет тот же результат, что и $("option").click?
Не могли бы вкратце объяснить, а почему нельзя "на опцию кликать"?
Ответить с цитированием
  #5 (permalink)  
Старый 04.09.2017, 10:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,114

Сообщение от Булат Азат улы
Поэтому, append(data) тут не работает
не понимаю

возможно вам поможет

$("body").on("change", "#JKonDares", function(){ alert($(this).val()); })
Ответить с цитированием
  #6 (permalink)  
Старый 04.09.2017, 10:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,114

Сообщение от Булат Азат улы
Не могли бы вкратце объяснить, а почему нельзя "на опцию кликать"?
не все браузеры это подерживают, в 99.9999999999% случаях в этом нет необходимости.
Ответить с цитированием
  #7 (permalink)  
Старый 04.09.2017, 11:05
Аспирант
Отправить личное сообщение для Булат Азат улы Посмотреть профиль Найти все сообщения от Булат Азат улы
 
Регистрация: 07.09.2016
Сообщений: 83

рони,
Да, так всё работает. Спасибо!
На счёт опций тоже понял, спасибо за объяснение!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция в функции. Обработчики клика. Запутался =) DorianLeroy Общие вопросы Javascript 8 29.09.2011 16:17
функция внутри Live() срабатывает после второго клика Ad1r jQuery 7 09.08.2011 14:11