我正在ASP.NET MVC中開發一個Web應用程序。我最近使用jQuery Rounded Corners插件添加了圓角(http://plugins.jquery.com/project/corners)。這似乎使IE8(但不是6或7,或Firefox)不安,因爲我不能再在$(document).ready()中設置焦點。在IE8中jQuery圓角+焦點()
這是問題的一個例子:
$(document).ready(function() {
// using jQuery rounded corners plugin
$("#centre").corners();
// this doesn't have any effect in IE8
$("#emailAddress").focus();
});
其中#centre包含我們的登錄頁面,#emailAddress是其中的第一個字段。
emailAddress字段應該獲得輸入焦點。它在IE6 & 7和Firefox中,但不在IE8中。如果你註釋掉兩條圓角線,那麼它就起作用了。
我也曾嘗試重點線移動到$(窗口).load():
$(window).load(function() {
$("#emailAddress").focus();
});
這也不起作用。但是,如果我寫使用超時設置聚焦,那麼它的工作原理:
$(document).ready(function() {
// using jQuery rounded corners plugin
$("#centre").corners();
// this doesn't have any effect in IE8
setTimeout(function() { $("#emailAddress").focus(); }, 100);
});
我不知道爲什麼在超時後設置的重點應該工作。這是否是因爲圓角操作修改了DOM(它們在容器的頂部和底部添加了一系列DIV以創建圓角邊框),這需要一些時間,並且focus()在DOM完成之前發生更新?
感謝您的幫助
埃德
對於初學者來說,jQuery圓角插件已有一年多了。 jQuery UI的做法是使用瀏覽器檢測和瀏覽器特定的CSS(如-moz-border-radius)。然而,對於IE來說,jQuery UI完全忽略了圓角,因爲支持就是那麼差。 – 2009-12-18 15:11:28
你可能會考慮使用[Formwin](https://github.com/rocco/formwin) – Rocco 2012-12-11 12:17:25