概念
a標(biāo)簽的默認(rèn)跳轉(zhuǎn)鏈接行為是由href來實(shí)現(xiàn)的,同時設(shè)置href屬性可以使a標(biāo)簽在hover狀態(tài)下以手指指示的樣式顯示。但實(shí)際過程中發(fā)現(xiàn)對a標(biāo)簽的href屬性的不同設(shè)置,可能會導(dǎo)致不同的行為反饋,故想要進(jìn)行幾種不同的設(shè)置情況總結(jié)一下。
1.a標(biāo)簽中設(shè)置href屬性,沒有賦任何值
<a href></a>
點(diǎn)擊a標(biāo)簽會刷新頁面,回到頂部。
2.a標(biāo)簽中設(shè)置href屬性,賦值href="#"
<a href='#'></a>
點(diǎn)擊a標(biāo)簽后會回到頁面頂部,但不刷新頁面。
3.a標(biāo)簽中設(shè)置href屬性,其中賦值使用javascript語句,另外設(shè)置onclick點(diǎn)擊事件
<a href='javascript:viod(0)' onclick="go()"></a>
javascript:viod(0)語句控制頁面不進(jìn)行跳轉(zhuǎn)也不進(jìn)行刷新,點(diǎn)擊之后也不會回到頁面頂部,使用javascript代碼阻止了href屬性的默認(rèn)跳轉(zhuǎn)鏈接行為。a標(biāo)簽點(diǎn)擊后會執(zhí)行onclick中設(shè)定函數(shù)go()。
4.a標(biāo)簽中設(shè)置href屬性,但賦值使用javascript語句,另外設(shè)置onclick點(diǎn)擊事件
<a href='javascript:return false' onclick="go()"></a>
此方法與上一種方法實(shí)現(xiàn)效果類似,一樣是href屬性中執(zhí)行js代碼,使用return false告訴瀏覽器要阻止href屬性的默認(rèn)行為,如跳轉(zhuǎn)鏈接,刷新頁面,回到頂部等,此方法依然可執(zhí)行g(shù)o()函數(shù)。
5.a標(biāo)簽中設(shè)置href屬性但不進(jìn)行賦值,設(shè)置onclick點(diǎn)擊綁定事件
<a href onclick="go()"></a>
點(diǎn)擊a標(biāo)簽,會觸發(fā)點(diǎn)擊綁定事件,執(zhí)行函數(shù)go()的相關(guān)操作,但同時也會由于href的設(shè)置進(jìn)行頁面的刷新,當(dāng)執(zhí)行綁定事件的操作函數(shù),在完成之前或者執(zhí)行過程中進(jìn)行了頁面刷新,對應(yīng)的頁面結(jié)果也會被重新刷新,并且回到頁面頂部。