一直都知道jQuery 1.7开始就提示live方法将移除,并且可以使用on方法进行替代,动手做了,才发现,怎么着好像不行?!!最后才发现,原来,没用对语法!
jQuery.on() 绑定点击事件可以用两种方式使用:
?
$(document).on('click', '.list_increase_num', function(){
? ? var num = $(this).prev('input');
? ? if (parseInt(num.val()) < 99) {
? ? ? num.val(parseInt(num.val()) + 1);
? ? }else{
? ? ? num.val(99);
? ? };
? });
? $(document).on('click', '.list_decrease_num', function(){
? ? var num = $(this).next('input');
? ? if (num.val() != 1 ) {
? ? ? num.val(parseInt(num.val()) - 1);
? ? };
? });
?
两种使用方式效果是不同的,第一种的作用点在p标签上,它会对document内所有list_decrease_num标签绑定click事件,而第二种作用点在body上面,它捕获document内所有list_decrease_num标签的click事件,也就是说,第一种方法是静态绑定的,新增list_decrease_num标签不会得到事件绑定,而第二种,新增list_decrease_num标签只要是document内的,都能被捕获,从而实现类似live的效果。