Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 26.11.2014, 15:21
Аспирант
Отправить личное сообщение для sloyi Посмотреть профиль Найти все сообщения от sloyi
 
Регистрация: 16.10.2014
Сообщений: 72

не не не чуточку меня не понял вот подробнее


допустим есть кнопка и див в который мы выводим
<div class='vivod'>Вывести</div>

<div class='all-form'>

</div>


далее с помощью события я вывожу несколько дивов

$(document).ready(function(){
	$('.vivod').click(function (){
		$.post("/netcat/modules/default/tegs-vivod-tovar.php",
						{
						podrazdel:podrazdel
						},
					function(data)
						{
						document.getElementById('all-form').innerHTML = data;
						}
				);
	});


В файле tegs-vivod-tovar.php идет вывод дивов. и вывели мы в див с классом all-form

далее у меня появляються такие дивы

<div class='all-form'>
	<span>1 значение</span>
	<div class='otpravit'>Отправить</div>
	</div>
	 
	<div class='otpravka'>
	<span>2 значение</span>
	<div class='otpravit'>Отправить</div>
	</div>
	 
	<div class='otpravka'>
	<span>3 значение</span>
	<div class='otpravit'>Отправить</div>
        </div>
</div>


теперь мне нужно событие при нажатии на кнопку с классом otpravit

пример:

$('.otpravit').click(function (){
    alert('Привет');
});


но он не работает т.к. при создании страницы данных дивов нет и он не понимает к кому его заставляют обратиться

и как вот справиться мне с данной проблемой
Ответить с цитированием
  #12 (permalink)  
Старый 26.11.2014, 15:21
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Чуваки с SO подсказывают: http://learn.javascript.ru/play/m6Ixl

нулевый елемент делается кроме того disabled и его попросту нельзя выбрать. Еще можно засунуть все в optgroup кстати.
Ответить с цитированием
  #13 (permalink)  
Старый 26.11.2014, 15:24
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от sloyi
т.к. при создании страницы данных дивов нет и он не понимает к кому его заставляют обратиться
Ну так вешайте свои вектора когда див появился. После того как. В чем тут проблема-то?
Ответить с цитированием
  #14 (permalink)  
Старый 26.11.2014, 15:25
Аспирант
Отправить личное сообщение для sloyi Посмотреть профиль Найти все сообщения от sloyi
 
Регистрация: 16.10.2014
Сообщений: 72

извени не понял тебя(
куда вешать?
Ответить с цитированием
  #15 (permalink)  
Старый 26.11.2014, 15:28
Аспирант
Отправить личное сообщение для sloyi Посмотреть профиль Найти все сообщения от sloyi
 
Регистрация: 16.10.2014
Сообщений: 72

впринцапе можно сделать вот так

$.post("/netcat/modules/default/tegs-vivod-tovar.php",
						{
						podrazdel:podrazdel
						},
					function(data)
						{
						document.getElementById('all_tovar').innerHTML = data;
                                                $('.otpravit').change(function() {
	                                             alert('Привет');
                                                });
						}
				);


и тогда будет работать. но там будут еще различные события и тогда придеться писать внутри внутри и внутри событий. а так не устраивает((((

Последний раз редактировалось sloyi, 26.11.2014 в 15:32.
Ответить с цитированием
  #16 (permalink)  
Старый 26.11.2014, 15:33
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

У вас родительский контейнер существует отродясь или аяксом зарождается?

<div class='all-form'>

на него вешаете обработчик щелчка и затем все что внутри появится будет доступно как я понимаю по event.target.
Ответить с цитированием
  #17 (permalink)  
Старый 26.11.2014, 15:35
Аспирант
Отправить личное сообщение для sloyi Посмотреть профиль Найти все сообщения от sloyi
 
Регистрация: 16.10.2014
Сообщений: 72

да он у меня есть изначально

Цитата:
обработчик щелчка и затем все что внутри появится будет доступно как я понимаю по event.target.
если вам не сложно, можно примерчик маленький.
Ответить с цитированием
  #18 (permalink)  
Старый 26.11.2014, 15:39
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

document.getElementById('all_tovar').innerHTML = data;

То есть список как хтмл что ли приходит? Ну зашибись. Ну ищите тогда чудесное преследование, или как там - делегирование в сферического коня.

Сделайте разметку под интерфейс, сделайте родителей, скройте что еще не имеет значения, получайте данные в json, делайте детей родителям и не придется искать пятое колесо зайцу.

То есть каноничный способ только через аякс. Вместо перезагрузок с рендером - подгрузка с рендером.
Ответить с цитированием
  #19 (permalink)  
Старый 26.11.2014, 15:43
Аспирант
Отправить личное сообщение для sloyi Посмотреть профиль Найти все сообщения от sloyi
 
Регистрация: 16.10.2014
Сообщений: 72

ладно спасибо большое за помощь попробую как нибудь разобраться
Ответить с цитированием
  #20 (permalink)  
Старый 26.11.2014, 15:44
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Кстати, говорят на js есть такая хуерага как ShadowDom. Дом Теней внатури, ну, то есть ob_start().

Сообщение от sloyi
если вам не сложно, можно примерчик маленький.
Не могу сообразить как в песочнице организовать XMLHttpRequest. Можно примерчик маленький? event.target можете прямо сейчас у себя отследить в консоли на любом щелчке.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Правильное всплытие события (делегирование) brokenwind Events/DOM/Window 3 15.04.2014 03:35
Делегирование события ruslan_mart Общие вопросы Javascript 29 11.01.2014 16:05
делегирование Moloch Events/DOM/Window 3 12.11.2013 15:20
Динамическое делегирование событий в backbone ssnikolay Библиотеки/Тулкиты/Фреймворки 4 13.11.2012 10:47