jQuery预绑定

文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  简书

1. 预绑定

首先解释一下什么叫预绑定。预绑定,顾名思义,就是在Web页面上的控件还没出现之前就绑定好事件。预绑定主要是指jQuery中的.on()方法。

2. Demo

  • HTML代码
1
2
3
<div id="root">
<input type="button" id="test" value="test"/>
</div>
  • 一般的jQuery代码:
1
2
3
$('#root').find('#test').on('click', function() {
...
});
  • 预绑定的jQuery代码:
1
2
3
$('#root').on('click', '#test2', function() {
...
});
  • jQuery添加控件的代码
1
$('#root').append('<input type="button" id="test" value="test2"/>')

解释:在页面控件直接显示的情况下,例如’test’,上面的两种绑定控件事件的方法都没问题,都可以正常工作,但如果上面的HMTL代码是在模板中,例如jsview中,模板数据不是页面加载时就添加的,或者上面的HTML代码开始不在页面上,是通过jQuery添加的,例如test2是在页面加载之后某个时刻添加的控件,使用一般的绑定控件事件的代码就会有问题,你会发现控件没有绑定事件,而使用预绑定的方法,控件的事件就能绑定上,即使控件是后来添加的。

上面的内容就是jQuery的事件预绑定,jQuery文档地址为:http://api.jquery.com/on/

如果有收获,可以请我喝杯咖啡!