展开全部
使用 on()方法,本质上使用了事件委派,将事件委派在父元素身上。自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代32313133353236313431303231363533e59b9ee7ad9431333433633339品,但是由于on()方法必须有事件,没有事件时可选择delegate();
父元素: .main .left
子元素: li
$("父元素").on("click","子元素",function(){
var index=$(this).index();
$(".main .right").find('li').css({"background":"#F4F4F4","color":"#333"});
$(this).css({"background":"#fff","color":"#46c6ff"});
$(".main .left").find('li').hide();
$(".main .left").find('li').eq(index).show();
});
扩展资料
on()可以获取动态元素,必须有事件;
delegate() 可以获取动态元素,可以没事件;
live() 可以获取动态元素,jQuery 1.9已弃用,必须有事件;
bind() 只能获取静态元素,不能获取动态元素,必须有事件。
用jQuery的append()方法动态添加了一段html代码之后,发现在为新添加的元素绑定click事件时无法获取该新元素。
live() 方法为被选元素附加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。通过 live() 方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素)。