jQuery是一款非常流行的JavaScript庫(kù),許多開(kāi)發(fā)者在開(kāi)發(fā)前端項(xiàng)目中都會(huì)選擇使用它來(lái)簡(jiǎn)化代碼的編寫。然而,有時(shí)候我們會(huì)發(fā)現(xiàn)使用jquery的on方法時(shí)卻不起作用,造成代碼運(yùn)行問(wèn)題。
$(document).on('click', '.button', function(){ alert('hello world!'); });
上述代碼使用了jquery的on方法,用于給文檔對(duì)象的button元素添加點(diǎn)擊事件。然而,有時(shí)候我們會(huì)發(fā)現(xiàn)點(diǎn)擊button元素時(shí)并沒(méi)有觸發(fā)alert彈窗,這就是on方法不起作用的一種情況。
這個(gè)問(wèn)題很可能出在元素不存在的情況下,當(dāng)on方法綁定事件的元素不存在時(shí),on方法是不起作用的。比如說(shuō),在頁(yè)面的某些元素是動(dòng)態(tài)生成的情況下,我們需要使用on方法的委托方式來(lái)綁定事件。
$(document).on('click', '.button', function(){ alert('hello world!'); });
上述代碼使用了on方法的委托方式,將事件綁定在document上,當(dāng)點(diǎn)擊.button元素時(shí),會(huì)觸發(fā)alert彈窗。
總的來(lái)說(shuō),當(dāng)我們遇到使用jquery的on方法時(shí)不起作用的情況,可以先檢查綁定事件的元素是否存在,如果不存在需要使用委托方式來(lái)綁定事件。