我正在創建一個調查表單,當用戶關注它們時需要突出顯示每個問題和一組回答(通過更改背景顏色)。 .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