очередность событий

Kirill

Новичок
очередность событий

код страницы:
Код:
<html>
    <head>
        <script language="javascript" type="text/javascript" src="/js/jquery-1.2.2.min.js"></script>
    </head>
    <body>
        <input type="text" value="345">
        <p onclick="alert('line click')">qsadads</p>
        <script type="text/javascript">
            $(document).ready(function(){
                $('input').blur(function(){alert('blur');});
                $('p').click(function(){alert('click');});                
            });
        </script>
    </body>
</html>
Если посмотреть страницу в IE и начать печатать в инпуте, а затем кликнуть на параграф (текст) - сработает только событие blur, события клик не сработают. Такая же картина наблюдается в опере.

Если вместо клика использовать mousedown - тогда везде будет работать, но сперва будет срабатывать blur а затем маус даун (т.е. клик).

Необходимо сделать чтобы сначала срабатывал клик а затем блюр.

Вообще весь этот гемор из-за оперы - есть саджешн (типа гугловского), по клику на какой нить подсказке нужно чтобы эта подсказка подставлялась в инпут + у инпута должен быть blur. Везде работает кроме оперы - при срабатывании события блюр саджешн убирается раньше чем срабатывает событие клик.

-~{}~ 19.05.08 12:12:

p.s. проблему можно решить если знать инициатор события blur в опере, но e.explicitOriginalTarget и e.relatedTarger не содержат этой инфы
 

kruglov

Новичок
Клик происходит при отпускании кнопки мышки.
А блюр при нажатии.

А если блюр запускать по setTimeout('someblur', 0) ?
 
Сверху