<div class="div1"> <ul class="link"> <li>点击</li> <li>点击</li> <li>点击</li> </ul> <ul> <li>点击</li> <li>点击</li> <li>点击</li> </ul> <ul> <li>点击</li> <li>点击</li> <li>点击</li> </ul> </div> <script> $(document).ready(function () { $('.div1').children('ul').each(function () { $(this).find('li').bind('click',function () { alert('im groot'); }); }) }); </script>
以上用bind() 进行事件绑定。可是它有一个问题,动态添加的元素,没法触发这个事件。这就涉及到了事件委托。html
jQuery 3.0中已弃用这两种方法,请用 on()代替。jquery
on() 方法在被选元素及子元素上添加一个或多个事件处理程序。ui
使用 on() 方法添加的事件处理程序适用于当前及将来的元素(好比由脚本建立的新元素)。this
自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。spa
因而只要把上面的bind(),改成on()便可。code
$(document).ready(function () { $('.div1').children('ul').each(function () { $(this).find('li').on('click',function () { alert('im groot'); }); }) });