jQuery: размытие с условиями? - PullRequest
0 голосов
/ 13 декабря 2011

У меня есть автоматическое предложение, которое очень похоже на использование в Facebook, на моем сайте. Обычно, когда вы печатаете, под строкой поиска отображается div с некоторыми результатами поиска. Но у меня возникают некоторые проблемы с его исчезновением при нажатии на другую часть веб-сайта. Сначала я использовал:

    $("#searchBar").blur(function(){
        $("#quickResults").hide()
    });

и все работало нормально, пока не добавили onClicks к результатам, которые переместили пользователя на страницу, связанную с результатом, щелкнув один из результатов, он также считался размытием для панели поиска и скрывал его до регистрации клика. , Я также попробовал:

    $("#searchBar").blur(function(){
        $(".result").blur(function(){
            $("#quickResults").hide()
        });
    });

Хотя, похоже, это не нравится, и это заставляет div не скрываться.

Любая помощь будет высоко оценена.

Ответы [ 2 ]

0 голосов
/ 16 декабря 2011

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

Я показывал div с функцией успеха ajax, я добавил это к этой функции успеха:

var events = $(document).data('events') || null;

if (events == null ||( events !== null && !events.click)) {
    $(document).click(function () {
        $('#quickResults').hide();                  
    });
} 
0 голосов
/ 13 декабря 2011
 var isBlurred = false;
 $(".result").blur(function(){
    isBlurred = true;
 }).focus(function(){
    isBlurred = false;
 });
 $("#searchBar").blur(function(){
        if(isBlurred)
            $("#quickResults").hide();
 });
...