![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
понравился ползунок здесь, который форму расширяет, а т.к. недолюбливаю библиотеки, написал своё:
не так уж и сложно оказалось. однако, возник вопрос. вот эта переменная в коде dropNS явно лишняя, если бы работали методы removeEventListener и detachEvent. но они не работают. (если убрать переменную, то листенеры останутся) здесь проблема так и не решена. ведь обработчики не явные, должны же они как-то сниматься. |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 11 Всего: 142 |
bars80080, а почему так не сделать
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
так, не работает так
|
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 11 Всего: 142 |
Странно, возможно это зависит от того, как на события подписываешься.Сейчас попробую чонить наваять. Добавлено через 11 минут и 7 секунд Ну вот в примере всё работает
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
ну, пример, примеру рознь.
хендлеры навешиваются автоматом и именно через addListener и attachEvent, т.к. нужно событие event, а прописать в разметке заранее нельзя, они навешиваются потом то бишь разделяем html и js |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 11 Всего: 142 |
bars80080, на счёт навешивания вышеозначенными методами не знаю, надо пробовать, но в моём примере если ты обратил внимание, первой кнопке обработчик приписывается в html-коде, а второй из скрипта. И кстати в в лисе в осле работает один и тот же код.
Добавлено через 31 секунду На 13-ю строку обрати внимание. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| Amphiluke |
|
||||||||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
bars80080, это бесполезно, ИМХО. Вот таким вот образом:
вы не воспроизведете те «явные» (анонимные) обработчики, которые передали в метод addEventListener. Здесь это уже совершенно другие функции, не имеющие отношения к ранее зарегистрированным слушателям. Поэтому метод removeEventListener не дает эффекта — ему передали функцию, не являющуюся зарегистрированным слушателем. Если вы не рассматриваете вариант с передачей функции в метод addEventListener «неявно», т.е. по ссылке на полноценную ранее подготовленную функцию-слушатель, то есть компромиссный вариант (но мне он не нравится):
где f1 и f2 — глобальные переменные. P.S. Хотя, я думаю, лучше всего было бы не поскупиться и создать отдельную именованную функцию-слушатель и оперировать ею, а не анонимными функциями. |
||||||||
|
|||||||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
тут какбэ попытка уйти от глобальной переменной. хотя, наверное, всё же нужно заворачивать всякие хвосты
да я как бы не за идею борюсь. этот метод добавления слушателей здесь же мне кто-то (может и ты) и подсказали /до этого я ими вообще не пользовался/. если есть какой-то более цивильный механизм, я не прочь посмотреть. как говорится, сам бы пошёл, да не знаю куда |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
нормальный вариант. покатит |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
Как обойтись без глобальных переменных, сразу не соображу, но, с другой стороны, их и не будет много. Только две (пользователь не может таскать сразу две textarea) Первая глобальная переменная — id объекта textarea, размеры которого меняются (если имеется несколько таких textarea), второй — координаты, где изначально была нажата кнопка мыши. И всё — не так уж и много, вроде. А если textarea одна, то и вообще остается только одна глобальная переменная (dc).
|
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
да, примерно как-то так и было, но как всегда не додумал. наверное, это более лучший вариант, т.к. если слишком быстро тягать ползунок в ИЕ то у одного поля, то у другого, иногда его чуть глючит. а в этом варианте без фатализма (в предыдущем иногда обработчик не успевал сняться, а функция уже переназначалась, из-за этого он прилипал к мыши намертво). теперь снимается. в общем, как всегда большое спасибо Это сообщение отредактировал(а) bars80080 - 14.12.2009, 17:42 |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 11 Всего: 142 |
Вот всё-таки есть у меня ощущение, что или я чего-то не догнал, или меня не поняли. Прочитал внимательнее первый пост и код...вот вариант, о котором говорил я
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
фиг знает, в последний раз у меня почему-то неудавалось передать event через такую запись
body.onmousemove= function(e){ dropENS(bk[0].id, e, dc) } из-за этого и приходилось всякие addEventListener вешать |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 11 Всего: 142 |
Ну ты же знаешь как это бывает: где-нибудь запятую потерял или ещё что и кирдык. С яваскриптом это "как два пальца обоссать". -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
нет, там именно не получалось передать событие
вот, эта тема http://forum.vingrad.ru/index.php?showtopi...t&p=2020891 |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |