近日在使用jQuery開發(fā)頁面時(shí),遇到了一個(gè)奇怪的問題。在使用.disabled()方法將一個(gè)按鈕設(shè)置為不可用的時(shí)候,頁面上的按鈕卻并沒有變灰,反而還是可以點(diǎn)擊的。
經(jīng)過一番排查,發(fā)現(xiàn)是因?yàn)樵摪粹o的樣式設(shè)置不允許其被禁用。具體而言,是因?yàn)樵摪粹o的CSS樣式里面含有以下代碼:
button { pointer-events: none; }
pointer-events屬性可以指定元素是否允許鼠標(biāo)事件的發(fā)生,none表示不允許。而禁用按鈕實(shí)際上就是要禁止鼠標(biāo)事件的發(fā)生,所以當(dāng)該屬性值被設(shè)置為none后,按鈕是不允許被禁用的。
在這種情況下,解決方法也很簡單。可以在CSS樣式中增加如下代碼:
button[disabled] { pointer-events: auto; }
這樣就可以讓按鈕在被禁用時(shí)也能夠顯示禁用狀態(tài)了。