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

Date: 2005-01-17 04:48 pm (UTC)
From: [identity profile] an-eng.livejournal.com
Дык, это к JS отношения не имеет. Первое - это достопримечательности конкретной версии(версий) IE.
А второе - типичное для виндов поведение, оттуда и проистекает. Классика, можно сказать :-) Лечится обычно захватом мышки либо хуком. Для тебя только первое возможно (setCapture)

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 10:53 am
Powered by Dreamwidth Studios