| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > return false в событии |
| Автор: Иль 20.4.2005, 01:29 | ||
Из разряда чужие ошибки хорошо, а свои лучше... протрезвляют и тонизируют. Имеется функция, в которой меняется свойство checked checkbox`а и сразу используется прерывание через return. По привычке пишу всегда return false и поплатился Описал событие inline (onClick=MyFunction()) - все работает, но мне этого мало. Описал событие как метод (onclick=MyFunction) (больше никак не умею и недопонимаю Поэтому теперь, пока наконец не пойму события, у меня новая привычка прерывать функции через return; |
| Автор: Иль 20.4.2005, 01:45 | ||||
| Увлекся Ругаться не будете? Просьба втолковать еще раз и "на пальцах", почему разное описание событий по разному себя ведет. И что это токое сидит в событии при описании inline: В ИЕ
В Геко
|
| Автор: Aliance 20.4.2005, 12:48 | ||
| Первый пост: там не полный код дан, нельзя сказать однозначно. Вообще, возврат boolean`а происходит, когда нужно отменить обычное поведение элемента, в котором записано событие. Например
При нажатии на первую ссылку появится alert окошко, затем после нажатия на кнопку ОК - оно исчезнет и произойдет переход по ссылке. Если кликнуть по второй ссылке - то перехода не будет. Второй пост: не особо понял суть вопроса ЗЫ: зайди на известную статью (если забыл - номер 1, см. мою подпись) и задавай вопросы там, что непонято именно... |
| Автор: Иль 20.4.2005, 13:08 | ||
| Aliance, виноват, думал это не совсем туда относится. Если можешь - перенеси. Ребяты, у меня натуги с этой статьей и событиями вообще. Не понимаю я ее, и отложил на потом. Особенно это
Смотрю в книгу, вижу фигу Надо будет распечатать и в метро по дороге вызубрить. Может тогда влезет Теперь по теме. Перепроверил код - все работает, все полное. Ударяем по checkbox и по событию там меняется checked=true на false (при клике чекбатон то тоже eже переключается на false), но из-за return false получаем в chekbox свойство cheked равное его состоянию до вызова события onclick, а должно быть false, тк мы его уже изменили. Получается дважды задается false, но всеравно, в итоге, получаем true в обоих браузерах. Я так понимаю все происходит. |
| Автор: Aliance 20.4.2005, 13:27 | ||||||||
Что не понятного? Все просто. Есть в JavaScript, равно как и в других языках, сокращенный синтаксис. Тут он вложенный.
Куда?
А зря |
| Автор: Иль 20.4.2005, 14:02 |
| ОК! А я собстна про evt и разницу в моделях и не понимаю. Но по теме этого топика тоже хочется понять |
| Автор: Sardar 20.4.2005, 17:25 | ||||||
Смотрим на код:
Думаем над результатами... Похоже вызывается mouseup с реальным состоянием чекбокса, затем вызывается click с инвертированным состоянием чекбокса. Изменение чекбокса в click не даёт результатов, это же в mouseup делает то что нужно. Почему так? Пока не знаю...
Какие разные события? Сорец функции в ИЕ и мозилле различается, т.к. в первом это анонимная функция, а во втором определяемая браузером, что кстати самому сделать не получится без eval. Допустим такой пример, где мы сами сделаем inline событие:
Сразу оговоримся что в убогой Опере 6 new Function нет. Как видим мы сделали собственное, по поведению полностью идеентичное как в ИЕ inline событие. |
| Автор: Иль 20.4.2005, 17:55 |
| Что такое Сорец/Сорес? И не нашел объяснение, что есть анонимная функция. Т.е. без имени, поэтому записывается в представлении как anonymouse? |
| Автор: Иль 20.4.2005, 18:08 | ||
|
| Автор: Aliance 20.4.2005, 18:12 | ||||
Исходный код
Сам дал ответ на свой вопрос |