$('#xx').find('a[data-id]').on('click','a',function(){
console.log('click');
});
页面上的内容本身是存在的,点击后 ajax 请求的数据再动态的添加到页面中,但是on的selector却怎么设置都不生效……
$('#xx').find('a[data-id]').on('click','a',function(){
console.log('click');
});
页面上的内容本身是存在的,点击后 ajax 请求的数据再动态的添加到页面中,但是on的selector却怎么设置都不生效……
|
7anshuaiDec 5, 2015
1
.on() 中的第二个参数 'a', 去掉试试
|
|
moe3000Dec 5, 2015
2
你的 a[data-id] 就是你要绑定的 a 么?
|
|
3
@moe3000 就是要绑定后面用 JS 动态生成的元素才加的。但是貌似加不对……
|
|
4
@7anshuai 这个要的
|
|
moe3000Dec 5, 2015
5
你这个写的我看不懂, on 里面的 selector 是之前的对象里的元素筛选,按你这么写就变成了对 a[data-id]里的 a 进行 click 绑定了
|
|
xujifDec 5, 2015
6
$('#xx').on('click','a[data-id]',function(){
console.log('click'); }); 我才 data-id 的 a 是后生成的 |
|
LancerCometDec 5, 2015
7
To 楼主,以下两种方式的区别?
$("#xx").find("a").on("click", function () {}); $("#xx").on("click", "a", function () {}); |
|
8
@LancerComet
@xujif $("#xx") 是不固定的,所以是一个 jq 的对象。这样的 var obj = $('#xx') 。 然后传入到一个函数里,函数里只能使用 obj 了。所以实际上是这样的 obj.find('a[data-id]').on('click','selector') |
|
XiaoxiaoPuDec 5, 2015
9
|
|
xujifDec 5, 2015
10
@cevincheung 那这个就不能做到动态绑定,要把事件绑定到不改变的元素上去,比如 body document
|
|
dong3580Dec 5, 2015
11
on 或者将 js 方法加在生成的元素之后,
|
|
shuiniushushuDec 6, 2015
12
你可以用事件委托,这样的话就不用动态绑定事件了
|