最近的項目要做一個網(wǎng)頁可款,使用到了Bootstrap,導(dǎo)入的jQuery版本是
<script type="text/javascript" src="js/jquery-1.11.3.min.js"></script>
同時擦酌,里面有一個四級聯(lián)動的下拉框,在網(wǎng)上找了一個四級聯(lián)動的demo菠劝,修改之后可以使用赊舶,但是使用到的jQuery版本是
<script type="text/javascript" src="js/jquery-1.8.0.min.js"></script>
剛開始還不知道1.7版本前的jQuery和1.7版本之后的jQuery還有改動,只是發(fā)現(xiàn)當(dāng)引入較新的jQuery時闸英,Bootstrap的響應(yīng)式布局(導(dǎo)航條)可以使用锯岖,但是四級聯(lián)動的下拉框就無法使用;當(dāng)使用版本較老的jQuery版本時甫何,可以使用四級聯(lián)動的下拉框出吹,但是無法使用Bootstrap的響應(yīng)式布局(導(dǎo)航條)。
在網(wǎng)上搜索了一下辙喂,發(fā)現(xiàn)了問題:
<b>從jQuery 1.7開始捶牢,on() 函數(shù)提供了綁定事件處理程序所需的所有功能鸠珠,用于統(tǒng)一取代以前的bind()、 delegate()秋麸、 live()等事件函數(shù)渐排。</b>
仔細檢查了一下,發(fā)現(xiàn)四級聯(lián)動的下拉框中用到了 live() 函數(shù)來綁定事件灸蟆。
$('li' , '#City').live('click' , function(){});
改為用 on() 函數(shù)的寫法應(yīng)該是:
$('#City').on('click' , 'li', function(){});
特別指出驯耻,四級聯(lián)動的下拉列表中的元素是在jQuery代碼中動態(tài)添加的。
此外炒考,即使符合條件的元素是on()函數(shù)執(zhí)行后新添加可缚,綁定事件對其依然有效。
附上 jQuery.on() 函數(shù) api 網(wǎng)站:
jQuery.on() 函數(shù) api