Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Слои действия 
:(
    Опции темы
SneG0K
Дата 17.4.2010, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: нет
Всего: 54



Код

<div class="country_edit_window">
    <div class="header"><p class="title">Редактировать</p><div class="draggable"></div><img align="left" class="close_btn"></div>
    <div class="body">Тело</div>
    <div class="bottom"><div class="save">Сохранить</div><div class="close">Закрыть</div></div>
</div>

Это у нас модульное окно.
Хочу сделать его перетаскиваемым
Код

/* window drag interface */
$(".country_edit_window .header").mousedown(function(){
    alert('clicl');
});

Все бы вроде хорошо, хватаем за заголовок - тянем. Но
Код

$(".country_edit_window .close_btn").click(function(){
    $(".country_edit_window").animate({"opacity": 0, "left": "0", "top": "0"}, 300);
    $(".country_edit_window").css({"display": "none"});
});

Но там-же в заголовке есть еще и кнопка закрытия модульного окна. Т.е. получается, что обработчик кнопки закрытия переопределяется.
Как сделать так, чтоб обработчик не переопределялся?
PM WWW Skype   Вверх
Amphiluke
Дата 17.4.2010, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 35
Всего: 112



Можно ловить на кнопке закрытия событие onmousedown, а не click (первое происходит раньше), и в обработчике отменять всплытие.

Как-то так, что-ль.
Код

$(".country_edit_window .header").mousedown(function(){
    alert('clicl');
});
$(".country_edit_window .close_btn").mousedown(function(e){
    $(".country_edit_window").animate({"opacity": 0, "left": "0", "top": "0"}, 300);
    $(".country_edit_window").css({"display": "none"});
    if (e) {e.stopPropagation();} else {event.cancelBubble = true;}
});

PM   Вверх
Любитель
Дата 18.4.2010, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 1
Всего: 92



Ну само закрытие обрабатывать в клике - это логично. А вот отменять обработку события парентами - действительно надо. Единственное - такой код немного странен, так как e здесь - это jQuery-вская обёртка над ивентом ("браузерный" обхект ивента - e.originalEvent). Он передастся всегда. У него есть метод stopPropagation, который уже под IE установит cancelBubble.


--------------------
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0681 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.