powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Повесить событие click (jQuery) на весь документ, кроме нескольких элементов
6 сообщений из 6, страница 1 из 1
Повесить событие click (jQuery) на весь документ, кроме нескольких элементов
    #36306928
poiuytrewq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго всем времени суток,

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

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
<!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>

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

Прошу помочь.
...
Рейтинг: 0 / 0
Повесить событие click (jQuery) на весь документ, кроме нескольких элементов
    #36306995
EmilRegis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что если в функцию remove_text() добавить параметр id и потом проверять, что если id = undefined or id<>'p_id' то выполнять дальше
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
function remove_text(id) {
    if(id <> 'undefined' or id <> 'p_id'){
	$('div#text').remove();
	$('body').unbind('click', remove_text);
   }
}
// --></script>
<body>
<p id='p_id'><a href="/images/img.jpg" target="_blank" onclick="show_text(event, 'some text');return false;">click</a></p>

...
Рейтинг: 0 / 0
Повесить событие click (jQuery) на весь документ, кроме нескольких элементов
    #36307001
EmilRegis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то есть
Код: plaintext
1.
2.
 
if(id == 'undefined' or id <> 'p_id')
...
Рейтинг: 0 / 0
Повесить событие click (jQuery) на весь документ, кроме нескольких элементов
    #36307015
poiuytrewq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хочется понять, почему не работают jQuery функции.
...
Рейтинг: 0 / 0
Повесить событие click (jQuery) на весь документ, кроме нескольких элементов
    #36307062
poiuytrewq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EmilRegisто есть
Код: plaintext
1.
2.
 
if(id == 'undefined' or id <> 'p_id')


прошу привести рабочий пример
...
Рейтинг: 0 / 0
Повесить событие click (jQuery) на весь документ, кроме нескольких элементов
    #36323443
GWhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
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').live('click',function(e){ 
	if(e.target.id == 'text') return;
	remove_text();
         });
}
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Повесить событие click (jQuery) на весь документ, кроме нескольких элементов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]