當(dāng)jQuery1.7遇上focus方法的問題
jQuery中有一個focus()方法能設(shè)置對象的焦點,在1.7以下的版本中,不管對象是不是disabed狀態(tài),這個方法都不會報錯(只是當(dāng)disabled時,設(shè)置焦點的代碼無效),但在1.7版本中,如果對象是disabled狀態(tài),這時調(diào)用focus()方法時,會直接報異常:
Error: Can't move focus to the control because it is invisible, not enabled, or of a type that does not accept the focus.
意思是:不可見或不可用的元素?zé)o法獲取焦點。(特別提一下:IE9很NB,能自動識別這種情況,在IE9下不會報錯,但是IE9以下的版本全掛。)
<!doctype html>
<html>
<head>
<title>測試</title>
<script src="jquery-1.7.min.js" type="text/javascript"></script>
<!--<script src="jquery-1.4.4.min.js" type="text/javascript"></script>-->
<script type="text/javascript">
function fnTest(){
//try{
$("#txt").focus();
//}catch(e){}
}
</script>
</head>
<body>
<div>
<input type="text" disabled="disabled" id="txt"/>
<input type="text" id="txt2"/>
<input type="button" value="Test" onclick="fnTest()"/>
</div>
</body>
</html>
雖然只是一個小變化,但是卻很容易造成大杯具,特別是你的js代碼,在focus()之后,還有其它很多事情要做時:)
建議:
如果一定要用最高版本的jQuery,最省事的辦法莫過于在寫xxx.focus()時,加一個try/catch,變成try{xxx.focus();}catch(e){}
相關(guān)文章
jQuery使用模式窗口實現(xiàn)在主頁面和子頁面中互相傳值的方法
這篇文章主要介紹了jQuery使用模式窗口實現(xiàn)在主頁面和子頁面中互相傳值的方法,涉及jQuery模式窗口及參數(shù)傳遞相關(guān)技巧,需要的朋友可以參考下2016-03-03jquery操作iframe實現(xiàn)父頁面和子頁面相互操作的九種情況
現(xiàn)實開發(fā)中難免會遇到子頁面、父頁面相互操作的情況,本文主要介紹了jquery操作iframe實現(xiàn)父頁面和子頁面相互操作的九種情況,具有一定的參考價值,感興趣的可以了解一下2024-02-02jQuery中json對象的復(fù)制方式介紹(數(shù)組及對象)
本文為大家介紹下jQuery中json對象的復(fù)制:jQuery自帶的$.map方式、深復(fù)制與淺復(fù)制等等,感興趣的朋友可以參考下哈,希望對大家有所幫助2013-06-06淺談jQuery中ajaxPrefilter的應(yīng)用
下面小編就為大家?guī)硪黄獪\談jQuery中ajaxPrefilter的應(yīng)用。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-08使用jQuery實現(xiàn)Web頁面換膚功能的要點解析
網(wǎng)頁換膚的實質(zhì)就是切換CSS樣式,關(guān)鍵是給用戶做出點擊切換的功能以及換膚完成之后的緩存記錄功能,下面我們就來看一下使用jQuery實現(xiàn)Web頁面換膚功能的要點解析:2016-05-05