jQuery .focus () и .blur () не работают в Chrome или Safari - PullRequest
10 голосов
/ 28 июля 2010

Я создаю форму опроса, которая должна выделять каждый вопрос и набор ответов (путем изменения цвета фона), когда пользователь фокусируется на них..focus () и .blur () работают в Firefox и IE, но не совсем в Safari и Chrome.Я также пробовал .focusin () и .focusout () с теми же результатами. РЕДАКТИРОВАТЬ: Нажатие не вызывает событие фокуса, но вкладка через поля ввода делает. Я говорю не совсем , потому что это работает для ввода текста, выбора ввода и ввода textarea;но не радио и входы флажков.

$(document).ready(function()
 {
    $("form li").focusin(function()
  {
   $(this).addClass("over");
  }).focusout(function()
  {
     $(this).removeClass("over");
  });
 });

Это применяется к блокам html, подобным следующему:

<li>
    <label for="webmail" class="desc">Email</label>
    <input type="text" name="webmail" id="webmail" />
</li>
<li>
    <label for="business" class="desc">Purpose of your Charter Flight:</label>
    <div>
        <span>
            <input type="radio" name="purpose" id="business" class="radio" />
            <label class="choice" for="business">Business</label>
        </span>
        <span>
            <input type="radio" name="purpose" id="pleasure" class="radio" />
            <label class="choice" for="pleasure">Pleasure</label>
        </span>
    </div>
</li>

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

Ответы [ 3 ]

3 голосов
/ 28 июля 2010

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

Попробуйте использовать jQuery.change() вместо этого, вот рабочий пример из этой проблемы, который у меня был

$("input#zendesk-dropbox-askedbefore, input#zendesk-dropbox-newhere").change(function() {
    $("label#zendesk-dropbox-label-askedbefore, label#zendesk-dropbox-label-newhere").toggleClass('zendesk-dropbox-label-highlight');
});

На случай, если из-за моего сумасшедшего использования имен ID неясно,1009 * и input#zendesk-dropbox-newhere - оба переключателя.

1 голос
/ 28 июля 2010

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

$(document).ready(function()
    {
       $("textarea, input, select, .radio, .checkbox").click(function()
        {
            $("form li.over").toggleClass("over");
            $(this).parents("li").toggleClass("over");
        });
    });

В любом случае, спасибо!

0 голосов
/ 05 апреля 2013
// In js area write following method
$('#chkRikin').focus(function() {
alert('Say Hi Rikin');
});


// in html area write following code anenter code hered test it your self
<input type="checkbox" onclick="this.focus()" onblur="yourMethod()" />

it works in google crom
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...