На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ElcnU, ANDLL, fatalist
  
> JavaScript и DOM , Проблемы с JavaScript и обработчиками событий
    У меня возникла следующая ситуация.
    На клиентской стороне c помощью DOM создается пользовательский интерфейс.
    Далее на элементы ввода типа Input ставится обработчик attachEvent("onpropertychange", HANDLER)
    Проблема возникает в следующем.
    Если я этому элементу делаю disabled = true, а потом disabled = false, то после таких манипуляций
    контрол на какое-то время перестает реагировать на ввод данных.
    Если же перед disabled = false вставить какой-нть алерт, тогда все работает без проблем
    на функция HANDLER не грешу.
    Помогите плиз!!!

    Если можно, то на мыло
    maildim@pisem.net

    Thanks
      На чудном языке ВБ был похожий прикол. Там делалось senKeys('a') и всё начинало работать. Как бытьс JS даже и не заню...
        Ни как. Разберись с браузером. Если не очень хочется, то проблема останется.
          Цитата Tishaishii @ 17.09.04, 20:42
          Ни как. Разберись с браузером. Если не очень хочется, то проблема останется.

          Меня просто бесят такие ответы. Если не знаете то и нечего писать (мол разберись сам). Я бы тогда и не залазил бы сюда.
          Thanks
            Kroshkin
            скажи пажалуйста а такая реакция только на алерт //
            смахивает что он перед false .... хочет перерисовку страницы .... он его не видит просто всмысле компелятор его нехочет воспринимать он ее не выполняет просто.
            попробуй какое нить слово в страничку вставить //невидимое //главное чтобы перед этим что-то было ...

            (Может сработать а может и нет ... это еще может из-за браузера //если это ниже или = 5IE то может и из-за этого и Tishaishii прав)
              Kroshkin
              Попробуй тогда обойтись без onPropertyChange,
              примерно вот так:
              ExpandedWrap disabled
                 
                <script type="text/javascript">
                <!--//--><![CDATA[//><!--
                function check(ID,HANDLER)
                {//Функция вызывается каждые 10 мс и проверяет изменилось ли Value у INPUT'a
                    var INPUT=document.getElementById(ID);
                    if(check.oldValue!=INPUT.value)//Если изменилось то вызываем handler
                        HANDLER(INPUT)//Вызываем функцию обработчик
                    check.oldValue=INPUT.value;//Обновляем запомненное значение INPUT'a
                }
                 
                function obrabotchik(O)
                {
                    alert(O.value)
                }
                 
                window.onload=function()
                {
                    /*Инициализируем значение переменной с которой
                      потом будем сравнивать текущее значение INPUTA*/
                    check.oldValue=document.getElementById('inp').value;
                    //Каждые 10мс будет вызываться функцию check
                    setInterval('check("inp",obrabotchik)',10)
                }      
                //--><!]]>
                </script>
                Цитата Mixxx @ 25.09.04, 16:03
                Kroshkin
                Попробуй тогда обойтись без onPropertyChange,
                примерно вот так:
                Полностью цитировать, было не обязательно.

                Спасибо за совет, но дело в том, что таких Input-ов не один, а целая тьма.
                Но все равно спасибо.
                Сообщение отредактировано: Mixxx -
                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                0 пользователей:


                Рейтинг@Mail.ru
                [ Script execution time: 0,0304 ]   [ 15 queries used ]   [ Generated: 2.05.24, 14:28 GMT ]