Непоследовательное поведение hoverIntent в Chrome, отлично работает в FF и на других элементах страницы - PullRequest
1 голос
/ 15 февраля 2011

Я работаю над простым битом hoverIntent для двух элементов страницы (при наведении курсора на «search_over» становится видимым «поиск», а при наведении курсора на «subscribe_over» - «подписка»), и я не могу понять, почему работает над «subscribe_over», а не «search_over». Сейчас я тестирую в Chrome и FF, и он отлично работает на обоих div в FF и только на "subscribe_over" в chrome. Вы можете помочь мне понять, почему? Возможно, также уместно: я работал над этой страницей как с отдельной страницей, и сейчас я нахожусь в процессе написания WordPress. Это может быть продуктом столкновения с функциями в wp_head, хотя я недостаточно осведомлен о том, что там происходит, чтобы сделать обоснованное предположение на данный момент.

вот код jquery:

var mouseOver = false; 
var mouseOver_search = false;

    $('#subscribe').hide();
    $('#subscribe').hover(
        function(){ mouseOver = true; },
        function(){ 
            mouseOver = false;
            $(this).fadeOut(300); 
        }
    );  
    $("#subscribe_over").hoverIntent({
        over: appear, // Function to call when mouseover is called    
        timeout: 500, // How often in milliseconds the onmouseout should be checked
        out: disappear // Function to call when mouseout is called    
    });

    function appear() {
        $('#search').hide();
        $("#subscribe").fadeIn(50);
    }

    function disappear() {
        if (mouseOver == false) $("#subscribe").fadeOut(300);
    }

    $('#search').hide();
    $('#search').hover(
        function(){ mouseOver_search = true; },
        function(){ 
            mouseOver_search = false;
            $(this).fadeOut(300); 
        }
    );  
    $("#search_over").hoverIntent({
        over: appear_s, // Function to call when mouseover is called    
        timeout: 500, // How often in milliseconds the onmouseout should be checked
        out: disappear_s // Function to call when mouseout is called    
    });

    function appear_s() {
        $('#subscribe').hide();
        $("#search").fadeIn(50);
    }

    function disappear_s() {
        if (mouseOver_search == false) $("#search").fadeOut(300);
    }

Итак, буквально один и тот же код скопирован и вставлен для двух отдельных элементов с разными именами функций. это вдвое дольше, чем нужно, но ясно, что оба элемента управляются одинаково. если это помогает, это в http://yummrs.com/blogочень много еще в стадии разработки!).

в прошлый раз, когда мне здесь ответили на вопрос, у меня была запятая с запятой смерти, и это было простое исправление, но я не вижу здесь запоздалых запятых ... заранее спасибо за вашу помощь.

Ответы [ 2 ]

1 голос
/ 15 февраля 2011

похоже, что это уже известная ошибка для chrome: http://plugins.jquery.com/content/google-chrome-bug-hoverintent

0 голосов
/ 15 февраля 2011

В своем коде вы определили:

<li id="subscribe_over"><a href="#">subscribe &darr;</a></li> 
<li id="search_over"><a>search</a></li> 

Разве вы не пропустили href для поиска <a> тег?

...