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

Повесить событие click (jQuery) на весь документ, кроме нескольких элементов
Доброго всем времени суток,

приведённый ниже код выводит ссылку, при клике по которой открывается слой "текст". Я хочу чтобы при клике по любому элементу документа кроме собственно самого слоя "текст" слой "текст" закрывался. Я думал что это будет просто...


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
<script language="JavaScript" type="text/javascript" src="jquery.js"></script>
</head>
<script language="JavaScript"><!--
function show_text(event, text) {
	if ($('div#text').length) return false;
	$('body').prepend('<div id="text" style="width:300px;height:50px;border:solid 1px #f00;">' + text + '</div>');
	event.stopPropagation();
	// $('body:not(div#text)').bind('click', remove_text);
	// $('body').not('div#text').bind('click', remove_text);
	// $('body:not(div#text)').live('click', remove_text);
	// $('body').live('click', remove_text);
	$('body').bind('click', remove_text);
	$('div#text').unbind('click', remove_text);
}
function remove_text() {
	$('div#text').remove();
	$('body').unbind('click', remove_text);
}
// --></script>
<body>
<p><a href="/images/img.jpg" target="_blank" onclick="show_text(event, 'some text');return false;">click</a></p>
</body>
</html>


Слой "текст" закрывается при клике по любому элементу, в т.ч. и самому слою "текст" (чего не должно быть). Закомментированные строки - различные опробованные мною вариации назначения обработки события клика.

Прошу помочь.
Ответить с цитированием