focus () Функция jQuery не работает в Safari, но отлично работает во всех других браузерах? - PullRequest
1 голос
/ 14 июня 2010

У меня есть текстовое поле поиска и кнопка поиска, при нажатии кнопки с текстом по умолчанию в текстовом поле или нулевым значением появляется предупреждение и снова фокусируется на текстовом поле поиска.Это работает очень хорошо во всех основных браузерах, но не в сафари.

Я пробовал это даже без jquery, но не сработало.Когда фокус попадает на текстовое поле поиска, у меня есть еще одна функция jQuery, заключается в том, что проблема.

Код, который устанавливает фокус на тексте поиска::

var search_dom = $('#store_search_keyword');
var search_text = search_dom.val();
search_dom.focus(function(){
    if ($(this).val() === SEARCH_TIP) {
        $(this).val('');
    }
});

любая помощь приветствуется, спасибо ..

Ответы [ 2 ]

2 голосов
/ 14 июня 2010

Вы должны вызвать собственный метод DOM focus(), например:

document.getElementByID('store_search_keyword').focus();
0 голосов
/ 14 июня 2010

Это не работает должным образом в Safari.

http://whatsthepointy.blogspot.com/2010/05/safari-focus-and-popup-alerts.html

Проблема вызвана тем, что "alert ()" в вашем обработчике. Safari не осознает, что его главное окно восстанавливает фокус после очистки окна оповещения, а когда Safari не считает, что это целевое приложение, он не обращает внимания на .focus() вызовы что-нибудь .

...