Как добавить ссылку на событие в js-код? 
		
		
		
		Есть следующий код, который занимается тем, что цепляет из определенного адреса название сообщения и ссылку на него, а затем генерирует список таких ссылок: 
	
<script type="text/javascript">
function tMess(n){
var a=[' новое сообщение',' новых сообщения',' новых сообщений'];
return a[n%10==1&&n%100!=11?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2]
}; 
function getPM(){
$.get("/messages",function(a){var s=$("b.unread",a).size();
if (s) {var n=tMess(s),all=[],leg=(s==1)?'Сообщение':'Сообщения';$("b.unread",a).each(function(){var title = $(this).html(), href = $(this).parent().attr("href"); all.push('» <a href="'+href+'">'+title+'</a>'
);}); 
new _uWnd('ls','Новые сообщения',250,120,{icon:'/images/message.png',align:'left'},'<center>У тебя '+s+n+'!</center><br><fieldset><legend>'+leg+'</legend>'+all.join("<br>")+'</fieldset>'
);}});
setTimeout(getPM,10000)};
getPM();
</script>
Задача в том, чтобы эта ссылка, сгенерированная указанным выше скриптом, выполняла следующую функцию: 
onclick="openLayerB('PM',0,'/js/profile/pm.xml','Личные сообщения',750,410,'0','','',0,'justify'); $('#newmessage').dialog('close'); return false;"
 Спасибо. Я пытался решить вопрос самостоятельно, но тщетно. С синтаксисом плохо ориентируюсь.  | 
	
		
 1. пока что у вас что-то не связное выходит 
	2. в jQuery для события onclick, другой синтаксис: 
$('element').click(function(){});
 | 
	
		
 Можно навешивать обработчики события "click" после вставки HTML-элементов на страницу. 
	Назначить класс у ссылки: 
all.push('<a href="'+href+'" class="handled">'+title+'</a>');
потом назначить обработчики: 
var handler = function(){
		openLayerB('PM',0,'/js/profile/pm.xml','Личные сообщения',750,410,'0','','',0,'justify'); 
		$('#newmessage').dialog('close'); 
		return false;
	};
$('a.handled').live('click', handler);
Или, если для вставки ссылок в документ вы используете что-то вроде innerHTML, то при генерировании ссылки можно написать так: 
var handler = function(){
		openLayerB('PM',0,'/js/profile/pm.xml','Личные сообщения',750,410,'0','','',0,'justify'); 
		$('#newmessage').dialog('close'); 
		return false;
	};
all.push('<a href="'+href+'" onclick="handler()">'+title+'</a>');
 | 
	
		
 Jurasmi, спасибо, но я так и не разобрался как это подогнать под свой код... 
	Вот: 
function tMess(n){var a=[' новое сообщение',' новых сообщения',' новых сообщений'];return a[n%10==1&&n%100!=11?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2];};function getPM(){$.get("/index/14",function(a){var s=$("b.unread", a).size();if(s){var n=tMess(s),h=_uWnd.getdims(),j=h.clientW-245,g=h.clientH-135,href=(s==1)?$("b.unread",a).parent().attr("href"):'/index/14';new _uWnd('ls','Уведомление',200,100,{icon:'http://javascript.ucoz.net/images/message.png',min:0,max:0,x:j,y:g,alert:1,autosize:1,fixed:1,shadow:1,resize:0,fadetype:1,fadespeed:1000,fadeclosetype:2,fadeclosespeed:400},'Пришло '+s+n+'! <br><hr><a id=msn class=cbut style=cursor:default>открыть</a>');$('#msn').click(function(){openLayerB('PM',0,'/js/profile/pm.xml','Личные сообщения',750,410,'0','','',0,'justify');_uWnd.close('ls');});}});setTimeout(getPM,120000)};getPM();
Мне нужно сделать ссылку в этом участке: <a id=msn class=cbut style=cursor:default>открыть</a> Jurasmi,  | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
 не удивлюсь если вы один из адептов курса Е.Попова. В вашем коде никто разбираться не будет пока вы его не приведет в порядок. вызов к.л. функции может производится к примеру так: $('#msn').click(function(){ tMess(n); }); если вы этого не понимаете, следуйте в раздел работа  | 
	
		
 Цитата: 
	
 2. Если никто не будет смотреть код, значит так и будет. Не нужно выражений. Я никого не обязываю смотреть эту тему, если не нравится — проходите мимо, а если есть предложения по оформлению — в ЛС. 3. Я бы не обращался за помощью если бы разбирался в языке и в том каким должен быть код. И если мой код ужасен (я не программист), то я предпочитаю остаться без ответа чем наслушаться грубостей на форуме.  | 
	
		
 Цитата: 
	
 т.к. здесь есть какие-то минимальные устоявшиеся правила форматирования кода, а если вы не можете не пытаетесь даже приложить усилия для решения вашей проблемы и подготовить код перед тем как покатать его кому-то то идите в раздел работа. Цитата: 
	
 Цитата: 
	
  | 
	
		
 Цитата: 
	
 Вы — модератор? Если да, то в таком случае просто удалите мою тему без полемики, а если нет, то не нужно тыкать людей в правила лицом в такой форме. Цитата: 
	
 Цитата: 
	
 Тема закрыта, т.к. на этот же вопрос с первого раза ответили ребята на stackoverflow. Можно удалять за «нарушение правил», «неОдекватное поведение» и «расхлябаный код» :) В том числе и мой профиль тоже, т.к. судя по приёму, он мне больше не понадобится. Буду благодарен. P.S. На заметку: «неодекватное» пишется через «а», «расхлябаный» пишется с двумя «н», а «по вашему» — через дефис. У вас на форуме нет правил по правописанию случайно? Ведь такое «расхлябанное» письмо неудобно читать (как и мой код, наверное)  | 
| Часовой пояс GMT +3, время: 16:39. |