Image

Imagerecoder 😮amused

Listens: Evanescence - Whisper

Category:

Java Script surprises

С глубокой ностальгией вспоминаю времена программирования под 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

promo Imagerecoder august 1, 2018 12:09 36
Buy for 100 tokens
Не так давно Фейсбук научил меня ещё одной классификации людей, в дополнение к стратегам и тактикам, интерналистам и экстерналистам, и разным морально-политическим приверженцам. Впервые эта классификация описана ещё двадцать лет назад Картером и Сэнджером в книге The Programmer's Stone…