今天在對接網(wǎng)站數(shù)據(jù)時(shí)呕乎,發(fā)現(xiàn)個(gè)bug荚斯,就是我動(dòng)態(tài)添加的元素沒辦法直接使用它的事件;
點(diǎn)擊左邊的年份霉颠,切換具體的期數(shù)对碌;
$(".menu-ul").empty();//清空該元素下面的子元素
for( var i = 1 ; i <= month; i ++ ){
var li = "<li value='"+i+"'>"+year+"年第"+i+"期</li>";
$(".menu-ul").append(li);//根據(jù)取得的year、month動(dòng)態(tài)添加期數(shù)元素
}
然后點(diǎn)擊相應(yīng)期數(shù)蒿偎,顯示不同期數(shù)的內(nèi)容朽们;
$(".menu-ul li").click(function(){
//獲取相應(yīng)的年份和期數(shù),再通過ajax獲取數(shù)據(jù)诉位,顯示數(shù)據(jù)
});
那么問題來了骑脱,我動(dòng)態(tài)添加的元素(li)找不到click事件,去百度了下苍糠,找到了解決辦法叁丧,就是使用jquery的.on()函數(shù):
on()支持直接在目標(biāo)元素上綁定事件,也支持在目標(biāo)元素的祖輩元素上委托綁定岳瞭。在事件委托綁定模式下拥娄,即使是執(zhí)行on()函數(shù)之后新添加的元素,只要它符合條件瞳筏,綁定的事件處理函數(shù)也對其有效稚瘾。
所以對自己的點(diǎn)擊事件代碼做了以下修改:
$(".menu-ul").on("click","li",function(){
//獲取相應(yīng)的年份和期數(shù),再通過ajax獲取數(shù)據(jù)姚炕,顯示數(shù)據(jù)
});