今天为了获取EasyUI的动态数据块疯了,终于在网上找到了答案。Jquery的各个版本间存在很大的差异,所以在
使用的时候,一定要搞清楚那些方法已经被淘汰了。
jquery通过 live() 方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素)
1
|
$(
"ul"
).append(
"<li class='name'>名称</li>"
);
|
【错误】然后通过下面的方式,这样是不能获取的 :
1
2
3
|
$(
".name"
).click(
function
(){
alert(
"获取到append后的节点"
);
})
|
【正确】正确的方法是:
1
2
3
|
$(
".name"
).live(
"click"
,
function
() {
alert(
"获取到了"
);
});
|
jquery 1.7+之后用on代替live,on()方法在被选元素及子元素上添加一个或多个事件处理程序
1
2
3
4
|
<
div
id
=
"one"
></
div
>
$('#one').append("<
p
id
=
'two'
>test1</
p
>");
append后结果:
$('#one').append("<
p
id
=
'two'
>test1</
p
>");
|
【错误】直接用下面的方式,不会弹出窗口的:
1
2
3
|
$(
"#two"
).on(
"click"
,
function
(data){
alert(data);
});
|
【正确】改成下面的方式:
1
2
3
|
$(
"body"
).on(
"click"
,
"#two"
,
function
(data){
alert(data);
});
|