на jQuery.фокус и.размытие() не работает в Chrome или Safari
Я создаю форму опроса, которая должна иметь каждый вопрос и набор ответов, выделенных (путем изменения цвета фона), когда пользователь фокусируется на них. .фокус и. blur() оба работают в Firefox и IE, но не совсем в Safari и Chrome. Я тоже пытался .focusin() and .focusout() с теми же результатами. EDIT: щелчок не запускает событие фокуса, но вкладка через поля ввода делает. Я говорю:не совсем потому что он работает для текстовых входов выберите входы и входы 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 ответов
Я также столкнулся с этой проблемой давным-давно, и, как ни странно, это был переключатель, дающий мне горе.
попробуйте использовать 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');
});
в случае, если это неясно из моего сумасшедшего использования имен идентификаторов,input#zendesk-dropbox-askedbefore
& input#zendesk-dropbox-newhere
оба переключателя.
Я думал об этом по дороге домой прошлой ночью и понял это самостоятельно, это может быть не самое элегантное решение, но оно, безусловно, работает.
$(document).ready(function()
{
$("textarea, input, select, .radio, .checkbox").click(function()
{
$("form li.over").toggleClass("over");
$(this).parents("li").toggleClass("over");
});
});
в любом случае спасибо!
// 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