jQuery ('select: focus'). blur () не работает в Safari и Edge - PullRequest
0 голосов
/ 11 октября 2018

У нас есть страница на нашем веб-сайте, где мы отображаем форму наложения через 5 секунд после загрузки страницы.Если щелкнуть любой элемент выбора на странице, чтобы развернуть его в течение 5 секунд, и дождаться появления формы «Наложение», то расширенный элемент выбора перекрывается с формой «Наложение».Дизайн на самом деле выглядит не очень хорошо.

Чтобы исправить это, мы вставляем строку кода, чтобы вызвать событие размытия на любом элементе выбора, который закрывает расширенный элемент выбора.Это отлично работает в Chrome, Firefox и Internet Explorer, но не в Safari и Edge.Я попытался исправить это, поставив несколько хаков, но ни один из них не работал нормально.Любая помощь будет принята с благодарностью!

var showOverlayForm = function () {
    setTimeout(function () {
        // Do something after 5 seconds
        // ANIMATE the overlay form.
        $('select:focus').blur(); //close any open select drop down 
    }, 5000);
};

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Я вставил следующий хак, и он отлично работает в IE, но не в Safari.

var $select =  $('select:focus');
var $newSelect = $select.clone();
$select.insertBefore($newSelect);
$select.remove();

Есть какие-нибудь мысли / предложения?

0 голосов
/ 12 октября 2018

Вы можете заметить, что когда пользователь выбирает выпадающий элемент управления, он добавляет class = focus .

. Вы можете попробовать использовать .toggleClass () и попытатьсяудалить этот класс может помочь вам решить проблему.

Ссылка:

.toggleClass ()

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

...