![]() |
Контейнер прехватывает клики чилда
Есть вот такая конструкция:
http://burdun.com/shared/bojan.png Это заголовок аккордеона. Соответственно он является кликабельным. А вот это справа на нем тоже две кнопки. Хотелось бы чтобы и они были кликабельными:) Но не получается. Битый час лажу по форуму ниче найти не могу (но вроде как видел похожую тему). При клике на одной из маленьких кнопок - просто сворачивается-разворачивается панелька аккордеона (тюею отрабатывается "большой" клик). А у маленьких кнопок ни маусовер не работает ни маусклик. Нарыл что-то про stopPropagation, но или не до конца разобрался, или это не для моего случая. |
Все верно, две кнопки справа - внутри кликабельного заголовка аккордеона, поскольку он подписан на события мыши - он все перехватывает. Я сделал бы следующим образом, снял обработчик события с него, залез внутрь заголовка, сделал бы подложку мувиком и ловил бы клик на ней, две кнопки соответственно выше подложки и будут получать события мыши. Если у вас все на диспетчерах, то переписывать код аккордеона не придется.
|
Короче, сделал так:
http://burdun.com/shared/bojan2.png Для данной задачи как по мне - то оптимальное решение, и ошибки юзабилити отсутствуют, а то как-то кнопка на кнопке не совсем по правилам построения интерфейсов :) А про события надо бы теории подчитать видимо..... |
Хм.
Хедер окна в Виндос - кликабельный. При этом на нем три кнопки и иконка-кнопка (просто ближайший пример). Нет такого "правила построения интерфейсов". И понимание событий тут не совсем при делах. Скорее надо разобраться с дисплей-листом. Даже если холодильник стеклянный - все равно надо открыть дверцу, чтобы достать сгущенку. Но если сгущенка стоит на столе на фоне холодильника, то можно и дверцу открывать, и сгущенку лопать. Если деньги в бумажнике - вы не можете положить их на стол, вы кладете бумажник. Вы совершаете действие с контейнером. Откройте контейнер (снимите с него мышиные слушатели) - и можете располагать всеми купюрами как хотите. |
Насчет хедера окна таки да, это загнался. Но всё-таки для этой задачи мое решение подходит. Ну не важно, вопрос решен...
Цитата:
//********************* Хотя только что пока отвечал дошло ваше сообщение Цитата:
Получится хедер как контейнер в котором равноправные элементы, которые не будут перекрывать друг друга: - маска - ловит основной клик по хедеру - кнопка1 - ловит свои клики - кнопка2 - ловит свои клики И получится типа сгущенка перед хододильником - маска-холодильник, - перед ней кнопка-схущенка, но связи никакой между ними нет, кроме того что они находятся в одной комнате (контейнере)... |
Точно. Только слово "маска" не надо использовать здесь - создает еще одну запутанность. У вас просто маленькие кнопки на фоне большой. И все в одном контейнере, который сам неактивен ("комнате")))
|
Собственно то же самое и Reon говорил:)
Его сообщение теперь тоже дошло :) Reon, Wolsh, спасибо за помощь)) |
| Часовой пояс GMT +4, время: 03:11. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.