最近我使用jQuery遇到了一個問題,就是在給li綁定點擊事件時,li不能被點擊,只有在點擊li內部的子元素才會觸發點擊事件,實在是困擾了我好久。
我嘗試了各種解決方法,包括給li設置cursor:pointer屬性,將點擊事件綁定到li內部的子元素上,但都沒有解決我的問題。
最終,在查看了一些資料之后,我找到了解決方法。原因是因為li的默認樣式是display:list-item,而display:list-item會使點擊事件只響應子元素而不響應li本身,因此需要將樣式設置為display:block。
li { display:block; }
或者,在綁定點擊事件時,可以使用事件代理,將事件綁定到ul或者其父元素上,而不是直接綁定到li上:
$('ul').on('click', 'li', function() { // do something });
最后,這個小問題終于得以解決,我也學到了一些新知識,感覺收獲頗豐。
上一篇背景登錄框css