recoder: (Default)
[personal profile] recoder

С глубокой ностальгией вспоминаю времена программирования под MFC. Много было всякого нетривиального, но в JavaScript/DHTML - всё намного чудесатее... Из совсем свежего:

Демонические combo-boxes

Расклад такой: в таблице на ячейки навешаны обработчики кликов, динамически создающие контролы. Делается это примерно так:

var html = 
    '<select name="foo" class="ctrl" ' +
        'onKeyPress="return check_keypress()" ' +
        'onBlur="return do_accept()" ' +
        'onChange="return check_change()">' +
    '<option value="" /></select>';
e.innerHTML += html;

И вроде всё работает. Пока не выясняется что в какой-то версии IE5.5 всё это роняет IEXPLORE.EXE. Но только при потере фокуса открытым комбо-боксом. Пришлось отказаться от onBlur.

Туда-сюда...

Профессор физики читает лекцию, в аудитории три студента. Вдруг пятеро встают и выходят. Профессор про себя думает:
- Hу вот, еще парочка придет - вообще никого не останется.

Задачка та же. Таблица, обработчики на ячейках. При наведении мыши надо хитро подсветить ячейку, при уходе - сбросить подсветку. Код естественно получается такой:

<td id="123456789" 
    onMouseEnter="return hookMouseEnter()" 
    onClick="return hookClick()" 
    onMouseLeave="return hookMouseLeave()">[some content]</td>

И тут выясняется, что не всегда на каждый Enter приходится свой Leave. Дрожащими руками запросто можно сделать три-четыре Enter'a. Почему такое получается - пока не могу понять, как бороться - тоже. Написать считающий семафор с ходу не вышло. В смысле написать вышло, только он не работает...

javascript

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

December 2024

S M T W T F S
1234567
891011121314
15161718192021
22232425 262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 26th, 2025 04:25 am
Powered by Dreamwidth Studios