我在document.ready()
中动态创建了一个类为arindic
的文本区域。
然后在它们的动态生成结束后,仍然在document.ready()
例程中,我将这些元素与keypress
事件绑定,如下所示:
$('.arindic').bind('keypress', function(evt){
// do lots of stuff
});
但它不起作用。我知道这个"做很多事情"的函数工作得很好,因为在document.ready()
的底部我有这个:
$('.arindic').keypress(function(evt){ // do lots of stuff // });
,这对于已经静态地出现在页面上的文本区域很有效。我绑定动态元素的方式有问题吗?而不是.bind()
我也尝试了.on()
和.live()
,但无济于事。
您最好使用.on()
绑定到静态元素,然后冒泡到动态创建的元素。
$(document).on('keypress', '.arindic', function(event)
{
// do lots of stuff
});
使用文档绑定并不是一件好事,我会将其更改为.arindic
所包含的最高级别元素,这是静态的,并允许此事件从那里冒出来。