1
FuryBean 2011-12-28 23:34:57 +08:00
一个元素的子元素已经替换成其他元素了,其他元素不具备原来元素的事件。
|
2
daqing 2011-12-28 23:36:28 +08:00
如果用jQuery的话,在注册监听事件时,用live()函数就可以了。
|
3
benzhe 2011-12-28 23:41:14 +08:00
因为已经是不同的对象了
|
4
zythum 2011-12-28 23:46:27 +08:00
就好比,你有一只手表。来了个人把你替代了。那他还有木有你的手表呢,
|
7
zzNucker 2011-12-28 23:58:11 +08:00
re 2楼 要告诉jQuery绑定事件的对象可能在将来再添加
|
11
honk 2011-12-29 00:18:27 +08:00
$(document).on('event', 'selector', function(){});
真要替換整個文檔的內容,倒不如重新發請求 |
13
mudkip 2011-12-29 01:29:33 +08:00 via iPad
修改 innerHTML 几乎相当于把里面的元素全部删了重来,所以其中的事件就不在了。jQuery live 方法大概是把事件绑定在 document 上,然后根据 target 判断所触发的元素吧,这样其中的元素的增删就不会影响事件。
|
14
honk 2011-12-29 09:55:06 +08:00
|
15
remus OP 又有问题了,对于event,用.live可以在替换内容后仍然生效,但像document.getElementById('testID') 这样的语句,却还是失效,这是为什么呢?
|