Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Клик в любом месте кроме конкретного Div-a / 20 сообщений из 20, страница 1 из 1
18.02.2008, 13:02
    #35138868
minva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клик в любом месте кроме конкретного Div-a
на страничке есть поле вводя даты. Рядом кнопочка при клике на которую открывается календарь (оформеный как div).
У календаря есть кнопка закрыть. При щелчке на дату, он так же закрывается. Можно ли сделать чтоб он закрывался еще и при щелчке в любое место за пределами этого div-a?
...
Рейтинг: 0 / 0
18.02.2008, 13:10
    #35138888
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клик в любом месте кроме конкретного Div-a
<body onclick="..."> не катит?
...
Рейтинг: 0 / 0
18.02.2008, 13:50
    #35139037
minva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клик в любом месте кроме конкретного Div-a
ShSerge<body onclick="..."> не катит?

Пробовал, что-то не сработало. И потом тот же div тоже попадет под body onclick
...
Рейтинг: 0 / 0
18.02.2008, 14:26
    #35139184
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клик в любом месте кроме конкретного Div-a
Проверяй window.event.srcElement.
...
Рейтинг: 0 / 0
18.02.2008, 20:40
    #35140177
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клик в любом месте кроме конкретного Div-a
minvaИ потом тот же div тоже попадет под body onclick
event.cancelBubble=true; в таких случаях помогает.
...
Рейтинг: 0 / 0
19.02.2008, 06:41
    #35140497
_restavraciya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клик в любом месте кроме конкретного Div-a
Имхо похожая задача, поэтому спрашиваю тут : узнать id элемента по которому кликнули ?
Кликнуть можно по любому элементу, поэтому каждому прописывать onclick не хочется.
Искал - не нашел. Подскажите как решить.
...
Рейтинг: 0 / 0
19.02.2008, 08:29
    #35140548
alexzander77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клик в любом месте кроме конкретного Div-a
_restavraciyaИмхо похожая задача, поэтому спрашиваю тут : узнать id элемента по которому кликнули ?
Кликнуть можно по любому элементу, поэтому каждому прописывать onclick не хочется.
Искал - не нашел. Подскажите как решить.
Код: plaintext
1.
2.
3.
4.
5.
6.
<body onclick='show();'>
<script language=javascript>
		function show() {
		 	alert(event.srcElement.id);
		}
	</script>
(С)
www.sql.ru/forum/actualthread.aspx?tid=526435
...
Рейтинг: 0 / 0
19.02.2008, 09:20
    #35140598
_restavraciya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клик в любом месте кроме конкретного Div-a
Большое спасибО!
...
Рейтинг: 0 / 0
19.02.2008, 20:38
    #35142651
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клик в любом месте кроме конкретного Div-a
event.srcElement.id
Под фирефоксом работать не будет.
...
Рейтинг: 0 / 0
20.02.2008, 17:15
    #35145236
alexzander77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клик в любом месте кроме конкретного Div-a
ShSergeevent.srcElement.id
Под фирефоксом работать не будет.
Вот гады.(
а я так рассчитывл (((
а что будет работать?
...
Рейтинг: 0 / 0
20.02.2008, 20:20
    #35145766
зы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клик в любом месте кроме конкретного Div-a
под файрфоксом другой объект, передается параметром функции. Свойства конкретного я не помню, я люблю пользоваться тулкитами, которые все кроссбраузерные преобразования делают за меня
...
Рейтинг: 0 / 0
20.02.2008, 20:38
    #35145787
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клик в любом месте кроме конкретного Div-a
Короче, если каждому элементу написать onclick="tudasuda(event,this);" Обработчик будет в любом браузере понимать и эвент и элемент, его типа пославший.
для кроссбраузерной обработки эвента, вместо простого канселбаббла надо писать:
Код: plaintext
1.
ev.stopPropagation ? ev.stopPropagation() : ev.cancelBubble=true;
, где ev - твой эвент.
...
Рейтинг: 0 / 0
20.02.2008, 21:17
    #35145830
зы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клик в любом месте кроме конкретного Div-a
это вариант черезжопу
...
Рейтинг: 0 / 0
20.02.2008, 21:23
    #35145835
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клик в любом месте кроме конкретного Div-a
зыэто вариант черезжопу
Точно. А что делать?
...
Рейтинг: 0 / 0
20.02.2008, 22:22
    #35145897
зы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клик в любом месте кроме конкретного Div-a
1) при открытии календаря вешаем дополнительный обработчик onclick на весь документ
2) по приходу управления в этот обработчик
function handler(e) {
var ev = window.event || e; (как-то так вроде)
....
}
от ev.target и наверх бежим пока не встретим либо начало документа (parentNode==null), либо ноду календаря (обозначенную классом, айди или как-то ещё).
Если встретили - выходим из обработчика. Если не встретили - закрываем календарь
3) при закрытии календаря отвязываем onclick от документа


кроссбраузерные механизмы работы с ивентом и обработчиками делаются через клиентские библиотеки ms ajax , либо тулкиты jquery / mootools / dojo / extjs / prototype / yui , короче что душе угодно. Если не хочется их использовать, то "правильный" код с легкостью оттуда тырится.
...
Рейтинг: 0 / 0
21.02.2008, 08:14
    #35146162
alexzander77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клик в любом месте кроме конкретного Div-a
зы1) при открытии календаря вешаем дополнительный обработчик onclick на весь документ
2) по приходу управления в этот обработчик
function handler(e) {
var ev = window.event || e; (как-то так вроде)
....
}
от ev.target и наверх бежим пока не встретим либо начало документа (parentNode==null), либо ноду календаря (обозначенную классом, айди или как-то ещё).
Если встретили - выходим из обработчика. Если не встретили - закрываем календарь
3) при закрытии календаря отвязываем onclick от документа


кроссбраузерные механизмы работы с ивентом и обработчиками делаются через клиентские библиотеки ms ajax , либо тулкиты jquery / mootools / dojo / extjs / prototype / yui , короче что душе угодно. Если не хочется их использовать, то "правильный" код с легкостью оттуда тырится.
сенкс, значит я сделал правильно. я , собсно, не знал что в фф евент через параметр передается.
(вообще-то, чесноговоря, я не знал что евент.срцЕлемент.ид в фф работать не будет)
...
Рейтинг: 0 / 0
21.02.2008, 21:02
    #35149058
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клик в любом месте кроме конкретного Div-a
зылибо тулкиты jquery / mootools / dojo / extjs / prototype / yui , короче что душе угодно. Если не хочется их использовать, то "правильный" код с легкостью оттуда тырится.
Спасибо, никогда не юзал. Сегодня поюзал jquery. Наверное эти самые тулкиты - лучший выбор, если конечно сам их не пишешь (в исходниках - такая фигня, но - работает).
...
Рейтинг: 0 / 0
21.02.2008, 21:06
    #35149062
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клик в любом месте кроме конкретного Div-a
PS сам-то чего юзаешь?
...
Рейтинг: 0 / 0
21.02.2008, 21:10
    #35149066
зы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клик в любом месте кроме конкретного Div-a
mootools, dojo, extjs
конечно же не все вместе :)
...
Рейтинг: 0 / 0
21.02.2008, 21:11
    #35149067
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клик в любом месте кроме конкретного Div-a
Спасибо.
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Клик в любом месте кроме конкретного Div-a / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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