實現a標簽按鈕完全禁用


前言

最近在開發時遇見一個問題

我們知道a標簽的disabled屬性部分瀏覽器支持,但是盡管設置了disabled屬性也無法阻擋任何鼠標經過或是點擊事件的,那么如何實現a標簽按鈕的禁用呢?

轉換一下思維,設置disabled屬性的元素表現為不能點擊、無法獲得光標焦點,那么我們不用disabled屬性實際上也可以達到同樣的效果!

實現

方法一:移除點擊事件click或touchend

我們可以直接使用jquery:unbind()或者JS:removeEventListener()移除點擊事件

方法二:給a標簽設置css屬性pointer-events:none

pointer-events:none是css3中的屬性,表示禁用鼠標事件,這樣實際上也是將click事件去掉了!

方法三:移除a標簽的href屬性

我們可以使用jquery:removerAttr()或者JS:removeAttribute()移除a標簽的href屬性

注意不能將href屬性賦值為空,因為空的a標簽會跳轉到本頁

完美禁用

我們在設置了pointer-events:none后發現元素仍然會被focus到,那么如何解決這個問題呢?

給a標簽設置disabled屬性雖然不能禁用鼠標事件,但是可以禁用鍵盤事件!!!

無href + pointer-events:none + disabled = 完美禁用

進一步整理 

pointer-events:none & without href = 完美禁用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM