Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.11.2015, 01:40
Новичок на форуме
Отправить личное сообщение для Besenok Посмотреть профиль Найти все сообщения от Besenok
 
Регистрация: 06.11.2015
Сообщений: 5

"Отловить" id из ajax
Всем доброго времени суток.
Уважаемые знатоки, нужна ваша помощь, суть проблемы такова, делаю чат, и сообщения подгружаются из файла по средствам ajax и вот тут то проблема, при добавлении к сообщениям ссылки удалить( к каждому ), столкнулся с тем что, не могу отловить ид этой ссылки через jquery, подскажите как можно это обойти?
Ответить с цитированием
  #2 (permalink)  
Старый 14.11.2015, 02:59
Аспирант
Посмотреть профиль Найти все сообщения от pnpquest
 
Регистрация: 09.11.2015
Сообщений: 94

Что значит не можете отловить? Если у элементов есть id, они доступны. Значит их нет, либо они дублируются, либо еще что-то не так.
Ответить с цитированием
  #3 (permalink)  
Старый 14.11.2015, 03:30
Новичок на форуме
Отправить личное сообщение для Besenok Посмотреть профиль Найти все сообщения от Besenok
 
Регистрация: 06.11.2015
Сообщений: 5

Сообщение от pnpquest Посмотреть сообщение
Что значит не можете отловить? Если у элементов есть id, они доступны. Значит их нет, либо они дублируются, либо еще что-то не так.
Ну то-есть, есть файл load_msg.php который каждые несколько секунд подгружается в div через ajax, в этом файле есть что то типа этого

echo '<div class="view_msg_d">';
	if( IsAdmin( $b['steamid'] ) ) {
        echo '<div class="chat_avatar"><img style="border: 2px solid #F00;" src="'.$b['avatar'].'" width="60" height="60" /></div>';
	} else {
		echo '<div class="chat_avatar"><img src="'.$b['avatar'].'" width="60" height="60" /></div>';
	}
	echo '<div style="float: left;">
	<div class="chat_name">
		<a href="http://steamcommunity.com/profiles/'.$b['steamid'].'/" target="_blank"><b>'.$b['user_name'].'</b></a></div>';
		if( isset( $_SESSION["steamid"] ) ) {
			if( IsAdmin( $steamprofile['steamid'] ) ) {
				//echo '<span style="float:left;line-height: 10px;margin-left:10px;">( steamID: '.$b['steamid'].' )</span>';
				echo '<a href="#" id="del_msg" >Удалить</a>';
			}
		}				
          	echo '<div style="clear:both;"></div>
		<div class="chat_msg_text">'.$b['msg'].'</div>
	</div>
</div> 
<div style="border-bottom: 1px dotted #CCC; margin-top: 5px; margin-bottom: 5px;"></div>
	<div style="clear:both;"></div>	
';


Пытаюсь выполнить банальный алерт при нажатии на #del_msg но ничего не происходит

//Удалить сообщение в чате
jQuery( '#del_msg' ).click( function() {
	alert( 'del_msg' );
	return false;
});


и такое только с файлами которые изначально не подгружаются на сайт( include ), а подгружаются в дальнейшем через ajax.

Надеюсь правильно озвучил суть.
Ответить с цитированием
  #4 (permalink)  
Старый 14.11.2015, 03:56
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Besenok
и сообщения подгружаются из файла по средствам ajax

Чат на файлах? Если да, то не лучшее, что можно представить.

Сообщение от Besenok
и такое только с файлами которые изначально не подгружаются на сайт( include ), а подгружаются в дальнейшем через ajax.
А это уже ваши недочеты и на сервере, и проблему надо на нем решать, клиент тут не причем. Например, в пределах файла сценария можно обращаться в его начале к функции, которая определена в нем в конце, но если функция определена в подключаемом файле, то подключение файла должно быть до обращения к функции. То же самое и с переменными в подключаемом файле - если файл подключается после их определения, то они определены, в противном случае это null.
Ответить с цитированием
  #5 (permalink)  
Старый 15.11.2015, 03:36
Аспирант
Отправить личное сообщение для Chiz Посмотреть профиль Найти все сообщения от Chiz
 
Регистрация: 18.04.2012
Сообщений: 43

Замени
echo '<a href="#" id="del_msg" >Удалить</a>';

на
echo '<a href="#" class="del_msg" >Удалить</a>';

И жс для "отлавливания" клика будет:
jQuery( '.del_msg' ).click( function() {
    alert( 'del_msg' );
    return false;
});
Ответить с цитированием
  #6 (permalink)  
Старый 15.11.2015, 03:43
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Chiz
И жс для "отлавливания" клика будет:
Нет, проблема не в этом, а в том, что это установка обработчика на существующие элементы при загрузке документа, а по ID ли (если грамотно), по классу ли, это не важно. Нужно либо делегирование обработки, либо установка подгружаемым.

Но вопрос в том причем тут include?
Ответить с цитированием
  #7 (permalink)  
Старый 19.11.2015, 06:42
Новичок на форуме
Отправить личное сообщение для Besenok Посмотреть профиль Найти все сообщения от Besenok
 
Регистрация: 06.11.2015
Сообщений: 5

Проблема решена путем переноса кода в файл загрузки сообщений.
Но появился другой вопрос, как можно функцию из php использовать в jqeury, делаю бан-чат и нужно функцию проверки бана( IsBan(...) из php ) отловить в JS?
За ранее благодарю на помощь.
Ответить с цитированием
  #8 (permalink)  
Старый 19.11.2015, 16:31
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Besenok
как можно функцию из php использовать в jqeury
Никак. Перед выдачей сервером клиенту, не важно какой запрос, асинхронный или нет, проверяйте если ли установлен ли бан и соответственно условию и выдача/нет, разрешено/нет и т.п...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объект ajax и приостановка функции kilohertz_. AJAX и COMET 5 18.01.2015 16:33
Проблема с AJAX Dim@ AJAX и COMET 4 16.09.2012 22:52
Ajax таблица gofkane Работа 1 26.09.2011 18:26
Ajax таблица gofkane Работа 0 25.09.2011 11:53
Ajax разбор метода mycoding jQuery 14 21.05.2010 10:57