解決jQuery ajax請求在IE6中莫名中斷的問題
場景還原:給a標簽綁定了一個click事件用來觸發(fā)ajax請求,在IE6中,請求時常會被中斷,在非IE6中都一切正常。
<a href="javascript:;" id="btn">click me</a> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> var url = "http://api.flickr.com/services/" "feeds/photos_public.gne?tags=car&" "tagmode=any&format=json&jsoncallback=?"; $( "#btn" ).click(function(){ $.getJSON( url, function( data ){ alert( data ); }); }); </script>
在IE6中使用Fiddler2監(jiān)視請求,經(jīng)常會出現(xiàn)”aborted”,折騰了許久,相當?shù)脑幃悺:髞韺標簽換成button,請求正常,最后經(jīng)提醒,可能是a標簽的默認事件中斷了請求。但是,在HTML代碼中,已經(jīng)將a標簽的href設(shè)置成了”javascript:;”,通常這樣是可以阻止默認事件了(頁面跳轉(zhuǎn))。a標簽的click事件會先執(zhí)行,然后才執(zhí)行href的跳轉(zhuǎn),如果href是一段javascript語句,這個時候就會執(zhí)行。IE6在執(zhí)行href的javascript語句時就中斷了click觸發(fā)的ajax請求。使用href=”javascript:;”是為了阻止默認事件,將阻止默認事件的動作移到click事件中就可以解決問題了,這樣就不會執(zhí)行href中的javascript語句了。
$( "#btn" ).click(function(e){ $.getJSON( url, function( data ){ alert( data ); }); e.preventDefault(); });
注:e.preventDefault(); 這一句的作用就是阻止js中的默認事件。
以上就是本文的全部內(nèi)容,希望能給大家一個參考,也希望大家多多支持腳本之家。
- jQuery解決IE6、7、8不能使用 JSON.stringify 函數(shù)的問題
- jquery fancybox ie6不顯示關(guān)閉按鈕的解決辦法
- jquery submit ie6下失效的原因分析及解決方法
- 解決jquery的.animate()函數(shù)在IE6下的問題
- 關(guān)于jquery中動態(tài)增加select,事件無效的快速解決方法
- jQuery:delegate中select()不起作用的解決方法(實例講解)
- jquery html動態(tài)生成select標簽出問題的解決方法
- jQuery選中select控件 無法設(shè)置selected的解決方法
- jQuery 跨域訪問問題解決方法
- jquery的ajax()函數(shù)傳值中文亂碼解決方法介紹
- jQuery在ie6下無法設(shè)置select選中的解決方法詳解
相關(guān)文章
分享8款優(yōu)秀的 jQuery 加載動畫和進度條插件
加載動畫和進度條在網(wǎng)站和 Web 應用中的使用非常流行。雖然網(wǎng)速越來越快,但是我們的網(wǎng)站越來越復雜,同時用戶對網(wǎng)站的使用體驗的要求也越來越高2012-10-10slideToggle+slideup實現(xiàn)手機端折疊菜單效果
這篇文章主要為大家詳細介紹了slideToggle+slideup實現(xiàn)手機端折疊菜單效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05jquery trigger函數(shù)執(zhí)行兩次的解決方法
這篇文章主要介紹了jquery trigger函數(shù)執(zhí)行兩次的解決方法,詳細分析了trigger函數(shù)執(zhí)行兩次的原因與響應的解決技巧,非常具有實用價值,需要的朋友可以參考下2016-02-02jquery實現(xiàn)網(wǎng)站列表切換效果的2種方法
這篇文章主要為大家詳細介紹了jquery實現(xiàn)網(wǎng)站列表切換效果的2種方法,供大家參考,感興趣的小伙伴們可以參考一下2016-08-08