前言
最近在開發時遇見一個問題
我們知道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 = 完美禁用
