Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.08.2011, 18:43
top top вне форума
Интересующийся
Отправить личное сообщение для top Посмотреть профиль Найти все сообщения от top
 
Регистрация: 12.08.2011
Сообщений: 15

Не вызывается функция после нажатия на ссылку
Здравствуйте. Суть вопроса в названии темы.
Сразу скажу, что на странице есть тоже ссылка и она всё вызывает нормально, а тут - даже не вызывает функцию. Вот js-код
$(document).ready(function(){
		setInterval(Status_users, 1000);
	});
var status_process_users = false;
	
	function Status_users(){
		if (!status_process_users){
			status_process_users = true;
			$.ajax({
				type: "POST",
				url: "php/ajax.php",
				data: {
					action : "status_users",
					login : nick
				},
				cache: false,
				dataType: "json",
				success: function (result){
					if (!result.no){
						$("#user_in_chat_div").html(result.users);
						status_process_users = false;
					} else status_process_users = false;
				}
			});
		}
	}
function winfunc(a,b,c,d,e,f,j,k,l,m){
	$(".userlogin").text(a);
	$(".userlogin").attr('href', "guest.php?guest=" + a);
	$(".userlogin").text(a);
	$(".usergroup").text(b);
	$(".username").text(c);
	$(".userstatus").text(d);
	$(".userdreg").text(e);
	$(".userdr").text(f);
	$(".usermail").text(j);
	$(".usersex").text(l);
	$(".userlastactivity").text(m);
	$(".userimg").attr('src', "upload/image/avatars/" + k);
	$(".usersendls").attr('href', "send_message.php?whom=" + a);
	$(".usersendmail").attr('href', "send_email.php?whom=" + a);
}
$(document).ready(function() {
	$('a[name=modal]').click(function(e) {
		e.preventDefault();
		var id = $(this).attr('href');
	
		var maskHeight = $(document).height();
		var maskWidth = $(window).width();
	
		$('#mask').css({'width':maskWidth,'height':maskHeight});
		
		$('#mask').fadeIn(1000);	
		$('#mask').fadeTo("slow",0.8);	
	
		var winH = $(window).height();
		var winW = $(window).width();
              
		var html = document.documentElement;
		$(id).css('top',  ((winH/2-$(id).height()/2)+html.scrollTop));
		$(id).css('left', winW/2-$(id).width()/2);
	
		$(id).fadeIn(2000); 
	
	});
	
	$('.window .close').click(function (e) {
		e.preventDefault();
		$('#mask, .window').hide();
	});		
	
	$('#mask').click(function () {
		$(this).hide();
		$('.window').hide();
	});			
	
});

А вот php-обработчик:
function Status_users(){
		
		$all_users = "";
		
		$time=time();
		$past=time()-180;
		
		$request_del_user = mysql_query("SELECT * FROM `users_in_chat` WHERE `time` < '$past'");
		if(mysql_num_rows($request_del_user) > 0)
			while($result_del_user = mysql_fetch_assoc($request_del_user)){
				$login = $result_del_user['login'];
				mysql_query("DELETE FROM `users_in_chat` WHERE `login` = '$login'");
			}
		
		$login = $_POST['login'];
		$result=mysql_query("SELECT * FROM `users_in_chat` WHERE `login` = '$login'");
		$rows=mysql_num_rows($result);
		if ($rows != "0") mysql_query("UPDATE `users_in_chat` SET `time` = '$time' WHERE `login` = '$login'"); 
			else mysql_query("INSERT INTO `users_in_chat` (`time`, `login`) VALUES ('$time', '$login')");
		
		$users_online_all = array();
		$request_user = mysql_query("SELECT * FROM `users_in_chat` ORDER BY id DESC");
		if(mysql_num_rows($request_user) > 0){
			$users_online_all['no'] = false;
			while($result_user = mysql_fetch_assoc($request_user)){
				
				$login = $result_user['login'];
				$user = mysql_query("SELECT * FROM `users` WHERE `login` = '$login'");
				$user = mysql_fetch_assoc($user);
					
				$userlogin = $user['login'];
				$usergroup = $user['group'];
				$username = $user['name'];
				$userstatus = $user['status'];
				$userdreg = $user['datareg'];
				$userdr = $user['dr'];
				$usermail = $user['mail'];
				$userimg = $user['img'];
				$usersex = $user['sex'];
				$userlastactivity = $user['lastactivity'];
						
				$main_news = file_get_contents("../template/user_in_chat_online.tpl");
				$main_news = str_replace("{userlogin}",$userlogin,$main_news);
				$main_news = str_replace("{usergroup}",$usergroup,$main_news);
				$main_news = str_replace("{username}",$username,$main_news);
				$main_news = str_replace("{userstatus}",$userstatus,$main_news);
				$main_news = str_replace("{userdreg}",$userdreg,$main_news);
				$main_news = str_replace("{userdr}",$userdr,$main_news);
				$main_news = str_replace("{usermail}",$usermail,$main_news);
				$main_news = str_replace("{userimg}",$userimg,$main_news);
				$main_news = str_replace("{usersex}",$usersex,$main_news);
				$main_news = str_replace("{userlastactivity}",$userlastactivity,$main_news);
				$all_users .= $main_news;
			}
		} else {
			$users_online_all['no'] = true;
		}
		
		$users_online_all['users'] = $all_users;
		echo json_encode($users_online_all);
	}

А вот шаблон(user_in_chat_online.tpl):
<table cellpadding="0" cellspacing="0" id="user_online_in_chat">
    <tr>
   		<td id="user_online_in_chat_col_ava">
    		<img src="upload/image/avatars/{userimg}" id="user_online_in_chat_ava" />
    	</td>
    	<td id="user_online_in_chat_col_info">
            <p class="login_user"><a onclick="winfunc('{userlogin}', '{usergroup}', '{username}', '{userstatus}', '{userdreg}', '{userdr}', '{usermail}', '{userimg}', '{usersex}' ,'{userlastactivity}')" href="#dialog" name="modal">{userlogin}</a></p>
            <p class="name_user">{username}</p>
            <p class="sex_user">{usersex}</p>
        </td>
    </tr>
</table>

В шаблоне есть ссылка и она не хочет вызывать функцию.
Ответить с цитированием
  #2 (permalink)  
Старый 23.08.2011, 20:33
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от top
Сразу скажу, что на странице есть тоже ссылка и она всё вызывает нормально, а тут - даже не вызывает функцию. Вот js-код
Очень осмысленно написано, тема "Не вызывается функция после нажатия на ссылку" и тут же пишет "на странице есть тоже ссылка и она всё вызывает нормально" и как тебя понять? Слишком много кода и много букв, ничего не понятно.
Ответить с цитированием
  #3 (permalink)  
Старый 23.08.2011, 21:34
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Смотрите консоль ошибок.
Ответить с цитированием
  #4 (permalink)  
Старый 24.08.2011, 02:34
top top вне форума
Интересующийся
Отправить личное сообщение для top Посмотреть профиль Найти все сообщения от top
 
Регистрация: 12.08.2011
Сообщений: 15

Сообщение от devote
Очень осмысленно написано, тема "Не вызывается функция после нажатия на ссылку" и тут же пишет "на странице есть тоже ссылка и она всё вызывает нормально" и как тебя понять? Слишком много кода и много букв, ничего не понятно.
В том и проблема!!! Я вешал на кнопку alert("asda"); и оно выводило asda, перепросматривал правильно ли сделал вызов функции, но вроде всё правильно.... даже не знаю что исправлять....

Сообщение от B@rmaley.e><e
Смотрите консоль ошибок.
Подскажи пожалуйста: где эта консоль?
Ответить с цитированием
  #5 (permalink)  
Старый 24.08.2011, 02:38
top top вне форума
Интересующийся
Отправить личное сообщение для top Посмотреть профиль Найти все сообщения от top
 
Регистрация: 12.08.2011
Сообщений: 15

devote,
Если не понятно, вот сама суть: ссылка не может вызвать функцию, но, к примеру, alert() работает.
Ответить с цитированием
  #6 (permalink)  
Старый 24.08.2011, 03:13
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

<a onclick="winfunc('{userlogin}', '{usergroup}', '{username}', '{userstatus}', '{userdreg}', '{userdr}', '{usermail}', '{userimg}', '{usersex}' ,'{userlastactivity}'); return false;" href="#dialog" name="modal">{userlogin}</a>
Ответить с цитированием
  #7 (permalink)  
Старый 24.08.2011, 03:23
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

и не забывай что все твои вот эти {userlogin}, {usergroup}, ... заменяются неизвестно на что, возможно там где нить одинарная кавычка закралась в значениях... И конечно же код становиться ошибочным. Не забывай экранировать кавычки в значениях.
Ответить с цитированием
  #8 (permalink)  
Старый 24.08.2011, 14:50
top top вне форума
Интересующийся
Отправить личное сообщение для top Посмотреть профиль Найти все сообщения от top
 
Регистрация: 12.08.2011
Сообщений: 15

devote,
Я просмотрел результат и никаких левых кавычек не обнаружил. Я делаю сайт и можно просмотреть результат(хоть и с непонятной ошибкой) вот ссылка http://crazy.h19.ru/chat.php. В чате кто онлайн не работает, а просто кто онлайн(слева) работает.
Ответить с цитированием
  #9 (permalink)  
Старый 24.08.2011, 16:51
top top вне форума
Интересующийся
Отправить личное сообщение для top Посмотреть профиль Найти все сообщения от top
 
Регистрация: 12.08.2011
Сообщений: 15

всё я исправил=) Спасибо за содействие.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вернуться к месту нажатия ссылки после скроллинга? galva74 jQuery 2 02.05.2012 10:41
функция внутри Live() срабатывает после второго клика Ad1r jQuery 7 09.08.2011 14:11
Где вызывается функция? cradis Общие вопросы Javascript 5 23.04.2011 13:47
Выполняется функция, а все что написано после нее игнорируется, libinstyle Элементы интерфейса 4 24.03.2010 16:44
Сохранение результата ajax запроса после нажатия 'back' gregOlsen AJAX и COMET 5 18.11.2009 12:23