jQuery .hide () в Safari? - PullRequest
       34

jQuery .hide () в Safari?

0 голосов
/ 02 августа 2009

Я тестирую некоторые jQuery в Chrome / Safari и просто не могу решить эту ошибку. В основном я делаю:

jQuery(':radio', '.some_class')
            .change(function() {
                jQuery('.special_class').show();
            })
            .blur(function() {
                jQuery('.special_class').hide();
      });

А у меня вообще нет любви? Даже пробовал

jQuery('.special_class').css('display','none');

И это тоже не поможет - ".some_class" показывает нормально, но не хочет исчезать?

Редактировать: HTML-код:

<div class="some_class">
    <label for="button"><input type="radio" name="style" id="button" value="button" />Button</label>
</div>

    <div class="special_class">Hello There!</div>

Редактировать 2: Что еще страннее в том, что когда я «вкладываю» - это работает? но с помощью «клика» это не так?

Есть идеи?

Ответы [ 3 ]

1 голос
/ 02 августа 2009

Событие размытия не означает «отмена выбора». Это означает «потерянный фокус клавиатуры». Вам нужно будет добавить некоторую дополнительную логику в ваш обработчик событий изменения, чтобы определить, был ли переключатель выбран или не выбран.

0 голосов
/ 26 февраля 2016

Я использовал немного дополнительных CSS, чтобы обойти эту проблему на одном из моих сайтов. Когда вы скрываете элемент, попробуйте этот CSS (либо добавив / удалив дополнительный класс с этими атрибутами, либо используя jquery .css)

display:none; opacity:0; pointer-events:none;

и показать

display:block; opacity:1; pointer-events:auto;

Иногда я также нахожу это просто отображение: ни один / блок не достаточно для Safari, но это довольно хорошо. 1007 *

0 голосов
/ 02 августа 2009

Я думаю, что есть проблема с событием "размытие". Смотрите здесь

Safari и Chrome не поддерживают эти события в ссылках и / или полях формы при любых обстоятельствах.

...