Показать сообщение отдельно
  #5 (permalink)  
Старый 23.10.2011, 22:08
Интересующийся
Отправить личное сообщение для nextdrift Посмотреть профиль Найти все сообщения от nextdrift
 
Регистрация: 23.10.2011
Сообщений: 25

короче потестировал я свой код... Есть небольшой баг, который хотелось бы исправить. Весь вечер голову уже ломаю.........

Из-за того, что стоит таймаут, несколько событий могут запуститься одновременно. Стоит мышкой быстро провести по всем элементам и остановиться на последнем, так создается эффект мерцания на последнем. Вот чуть более полный код

$('img[uid]').live('mouseover',function () {
              
        uid = $(this).attr('uid');
        whereMouse = 'over';
        $('img[uid="' + uid + '"]').live('mouseout', function(){
            whereMouse = 'out';
        });

        setTimeout(function(){


            $('#infobar').remove(); // удаляем, если есть. На всякий пожарный

            if(whereMouse == 'over') {

                $.ajax({

                    url: local + 'ajax/json/info_u' + uid + '.json',
                    dataType: 'json',
                    success: function(json) {

                            ------------------
                            заполняем переменную infobar
                            ------------------
                            $('#track_controls').append(infobar);
                            $("#infobar").fadeIn(300);
                            
                            $('img[uid=' + uid + ']').live('mouseout',function(){
                                $("#infobar").fadeOut(300, function(){
                                    $(this).remove();
                                });
                            });
                    }
                });
            }
        }, 400);
});



подскажите, что можно сделать?
Ответить с цитированием