場(chǎng)景還原:給a標(biāo)簽綁定了一個(gè)click事件用來觸發(fā)ajax請(qǐng)求,在IE6中,請(qǐng)求時(shí)常會(huì)被中斷,在非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)視請(qǐng)求,經(jīng)常會(huì)出現(xiàn)”aborted”,折騰了許久,相當(dāng)?shù)脑幃悺:髞韺標(biāo)簽換成button,請(qǐng)求正常,最后經(jīng)提醒,可能是a標(biāo)簽的默認(rèn)事件中斷了請(qǐng)求。但是,在HTML代碼中,已經(jīng)將a標(biāo)簽的href設(shè)置成了”javascript:;”,通常這樣是可以阻止默認(rèn)事件了(頁面跳轉(zhuǎn))。a標(biāo)簽的click事件會(huì)先執(zhí)行,然后才執(zhí)行href的跳轉(zhuǎn),如果href是一段javascript語句,這個(gè)時(shí)候就會(huì)執(zhí)行。IE6在執(zhí)行href的javascript語句時(shí)就中斷了click觸發(fā)的ajax請(qǐng)求。使用href=”javascript:;”是為了阻止默認(rèn)事件,將阻止默認(rèn)事件的動(dòng)作移到click事件中就可以解決問題了,這樣就不會(huì)執(zhí)行href中的javascript語句了。
$( "#btn" ).click(function(e){ $.getJSON( url, function( data ){ alert( data ); }); e.preventDefault();});
注:e.preventDefault(); 這一句的作用就是阻止js中的默認(rèn)事件。
以上就是本文的全部內(nèi)容,希望能給大家一個(gè)參考,也希望大家多多支持武林網(wǎng)。
|
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注