Показать сообщение отдельно
  #1 (permalink)  
Старый 06.01.2011, 17:51
Интересующийся
Отправить личное сообщение для Karpo Посмотреть профиль Найти все сообщения от Karpo
 
Регистрация: 27.09.2010
Сообщений: 14

click выполняется один раз
Навигация по комментариям на сайте представляет собой ряд ссылок вида
<a id="menu" href="">1</a><a id="menu" href="">2</a><a id="menu" href="">N</a>
навигация реализована через ajax, но js код события onclick выполняется через ajax только один раз.далее идёт обычное обращение по ссылке.Так как страница перезагружается, то в следущий раз js снова работает.Не могу добиться многократного выполнения js.Вот код скрипта(извеняюсь за большой размер)
jQuery(document).ready(function() {
	jQuery("a#menu").click(
	function(){
		var href;
		var n;
		var values = {};

		href = jQuery("a#menu").attr("href");

		if(href.indexOf("http:") != -1)
		{
			href = href.substring(7);
		}

		if(href.indexOf("/") != -1)
		{
			url = href.split("/");
		}

		else 
		{
			url = href.split("\\");
		}
		n = url.length;
		if(n > 3)
		{
			
			values.controller = url[1];
			values.action = url[2];
			values.npage = url[3];
			if(n > 4)
			{
				values.npagecomment = url[4];
			}
		}

		else
		{
			values.error = "yes";
		}
		zapros = {"controller"	: values.controller,
					 "action"    	: values.action, 
					 "npage"     	: values.npage, 
					 "npagecomment": values.npagecomment};
					 
		jQuery.post("/comments/get", zapros, function(otvet, status){
			var string;
			var i;
			var n;
			var shablon;
			var comments;
			var comment;
			var one;
			
		
			
			string = "<div id=\"obsudit\">ОБСУДИТЬ</div><div id=\"tolst\" ></div>";
			string += otvet["menu"];
			n = otvet["vsego"];
			shablon = otvet["shablon"];
			comments = otvet["comments"];
			for(var i in comments) 
			{
				comment = comments[i];
		
				one = replace_string("<nikcom>",comment["nick"], shablon);
			
				one = replace_string("<dcom>",comment["day"], one);
	
				one = replace_string("<mcom>",comment["month"], one);
				one = replace_string("<ycom>",comment["year"], one);
				one = replace_string("<ttt>",comment["time"], one);
				one = replace_string("<comtext>",comment["text"], one);
				string += one;
			}
			string += otvet["menu"];
			string += "<div id=\"tolko\">Только зарегистрированные пользователи могут оставлять комментарии</div>";
			$("div#osnova").height("auto");
	$("div#lp").height("auto");
	$("div#rp").height("auto");
			 $("div#comments").html(string);
		kolonki();
		
		},"json");
	
	return false;
	});
	});

function replace_string(search, replace, subject)
{
	if(subject == '' || search == '')
	{
		return subject;
	}
	else
	{
		var parts;
		parts = subject.split(search);
		if(parts.length < 2)
		{
			return parts[0];
		}
		else
		{
			return parts.join(replace);	
		}
	}
} 
function kolonki(){
var hg=0;
if($("div#lp").height()>hg)
	hg=$("div#lp").height();
if(($("div#osnova").height()+52)>hg)
	hg=($("div#osnova").height()+52);
if($("div#rp").height()>hg)
	hg=$("div#rp").height();
$("div#lp").height(hg);
$("div#osnova").height(hg-52);
$("div#rp").height(hg);
}
Ответить с цитированием