我正在创建一个调查表单,当用户关注它们时需要突出显示每个问题和一组回答(通过更改背景颜色)。 .focus()和.blur()都可以在Firefox和IE中使用,但在Safari和Chrome中,并不完全是。我也尝试过.focusin()和.focusout(),结果相同。 编辑:单击不会触发焦点事件,但通过输入字段切换。我说不完全,因为它适用于文本输入,选择输入和textarea输入;但不包括收音机和复选框输入。jQuery .focus()和.blur()不适用于Chrome或Safari
$(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>
我试图切换瞎搞,但我正在寻找一个更优雅的解决方案,不使用令人费解的逻辑包括使其工作。有任何想法吗?
如果'blur()'不起作用,请尝试创建一个虚拟输入元素,将其粘贴到页面某处并对其调用'focus()'。 – Warty 2010-07-27 22:01:09