#背景 今天在做一个项目的时候,遇到有一个select框是ajax加载进来的,而且我需要去监听这个select的change事件,一开始我是这样监听的
$('select').change(function(e){
//处理逻辑
})
但是发现这样是行不通的,因为这个绑定在这个select加载进来就已经做了绑定了,对于后面加载的元素不起作用,后面就去查,发现了这个方法
###.live()
$('a', $('#container')[0]).live(...);
Query把alert函数绑定到$(document)元素上,并使用’click’和’a’作为参数。任何时候只要有事件冒泡到document节点上,它就查看该事件是否是一个click事件,以及该事件的目标元素与’a’这一CSS选择器是否匹配,如果都是的话,则执行函数。
上面这一段是在网上找了的说明,但是,我使用的时候,却发现.
$(...).live is not a function
这句话的意思是jQuery没有live这个方法?
后面发现在jQuery1.7以后已经建议使用live这个方法了,可以使用on来替代
$(document).on('change',"select",function() {}
或者使用
$('#loadType').delegate('select',"change",function() {
上面这两句的意思就是,监听前面的$(xx)里面的所有select元素,如果有发生change这个事件,就执行function,无论是不是ajax加载的
部分资料是参考了这篇文章
http://kb.cnblogs.com/page/94469/