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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> onmouseup на скролле в ИЕ, Скролл относится к диву 
V
    Опции темы
Burrr
Дата 14.4.2006, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 459
Регистрация: 4.9.2005

Репутация: 10
Всего: 20



Чтобы сразу было понятно о чем речь, привожу в пример код:
Код

<body>
<script type="text/javascript">
function mouse_down(){
    document.getElementById("mouseev").innerHTML='Мышь: <b>нажата</b>';
}
function mouse_up(){
    document.getElementById("mouseev").innerHTML='Мышь: <b>отпущена</b>';
}
</script>
<div onmousedown="mouse_down()" onmouseup="mouse_up()" style="width:200px;height:100px;overflow:auto;border:1px solid #000000">
1<br>2<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>
1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>
</div>
<br>
<div id=mouseev>Состояние мыши</div>
</body>

В ИЕ при нажатии-отпускании клавиши мыши внутри ДИВ-а, всё работает как положено. Однако при нажатии клавиши на скролле, событие отпускания (mouseup) не срабатывает. В Гекко такого не наблюдается, всё работает как надо. Помогите пофиксить эту ИЕ-шную багу! smile


--------------------
PM MAIL ICQ   Вверх
12345c
Дата 14.4.2006, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Можно уменьшить вред введением

<div ... onscroll=f()

и обработкой. Но там всё равно event.button не отлавливается, отпускание не определишь.
PM WWW   Вверх
Иль
Дата 17.4.2006, 02:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 544
Регистрация: 3.3.2005
Где: Москва

Репутация: 2
Всего: 14



Burrr, сделай через просачивание событий и отлов события на родительском элементе. То есть оберни первый div в еще один div с CSS/height:auto и лови события на нем.
Ничего не обещаю сам не проверив, но должно работать smile
Можешь сказать, почему тебе onClick не достаточно (если это не в образовательных целях конечно), тк может по другому порешится?

Burrr, 12345c сами не хотите поэксперементировать? напишите? 


--------------------
Ты виндусятник?... А я да. smile
PM MAIL ICQ Skype GTalk   Вверх
Иль
Дата 17.4.2006, 02:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 544
Регистрация: 3.3.2005
Где: Москва

Репутация: 2
Всего: 14



Хотя, можно и на body отлавливать события.
А может такое решение тоже не стработает. Надо пробовать, как там на скроле себя ИЕ поведет.
Видать скрол это отдельная нода, вне видимого DOM. Такое поведение я в Gecko замечал.

Добавлено @ 02:36 
Но кажись у меня все работало  smile  


--------------------
Ты виндусятник?... А я да. smile
PM MAIL ICQ Skype GTalk   Вверх
Burrr
Дата 17.4.2006, 08:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 459
Регистрация: 4.9.2005

Репутация: 10
Всего: 20



Цитата

Burrr, сделай через просачивание событий и отлов события на родительском элементе. То есть оберни первый div в еще один div с CSS/height:auto и лови события на нем.

Событие к сожалению не просачивается, такое ощущение, что оно в ИЕ не возникает. Ни на внешнем ДИВе, ни в БОДИ его нет  smile 
Зато, если намеренно допустить ошибку в обработчике mouseDown (например поставить exit;), то mouseUp срабатывает. Такое ощущение, что mouseDown просто не прекращается. К сожалению работающий вариант с ошибкой в строке статуса также не подходит. Неужели нет решений? 
Цитата

Можешь сказать, почему тебе onClick не достаточно (если это не в образовательных целях конечно), тк может по другому порешится?

Решаю довольно нетривиальную задачу, связанную со скроллом и в силу определенных причин нужно отловить именно mouseup в диве. 


--------------------
PM MAIL ICQ   Вверх
Иль
Дата 17.4.2006, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 544
Регистрация: 3.3.2005
Где: Москва

Репутация: 2
Всего: 14



Попробую тогда сам замутить скипт. Может вечером. 


--------------------
Ты виндусятник?... А я да. smile
PM MAIL ICQ Skype GTalk   Вверх
Иль
Дата 20.4.2006, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 544
Регистрация: 3.3.2005
Где: Москва

Репутация: 2
Всего: 14



Замутил, убедился  smile 
При клике на самой пимпочке скрола без ее сдвига все возможные события после mouseDown не зажгутся.
Тупик  smile 


--------------------
Ты виндусятник?... А я да. smile
PM MAIL ICQ Skype GTalk   Вверх
Burrr
Дата 21.4.2006, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 459
Регистрация: 4.9.2005

Репутация: 10
Всего: 20



Жаль!
Спасибо, что приложили усилия для решения задачи!

Хорошо бы сделать какой-нить форум (или тему) для таких вот задач (под рубрикой impossible smile ), может кто-нить со временем и решит. 


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


 




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


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

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