jQuery 1.7 新的事件 API
jQuery 1.7 中,对以前的
bind/unbind、live/die、delegate/undelegate 三个事件绑定方法做了统一: 1 2 | $(elements).on( events [, selector] [, data] , handler );$(elements).off( [ events ] [, selector] [, handler] ); |
当提供了selector参数时,.on() 和以前的 .delegate() 方法十分类似;当selector参数忽略或为空时,又和以前的 .bind() 很相似。
有一点需要注意,当 data 参数是字符串类型时,必须要提供一个 string 类型的 selector 或 null,来防止 data 被误认为是 selector。
以前旧的事件 API 在1.7 中依然保留,但是官方推荐使用新的 API。以下是新旧 API 的几个对比例子。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | $('a').bind('click', myHandler);$('a').on('click', myHandler);$('form').bind('submit', { val: 42 }, fn);$('form').on('submit', { val: 42 }, fn);$(window).unbind('scroll.myPlugin');$(window).off('scroll.myPlugin');$('.comment').delegate('a.add', 'click', addNew);$('.comment').on('click', 'a.add', addNew);$('.dialog').undelegate('a', 'click.myDlg');$('.dialog').off('click.myDlg', 'a');$('a').live('click', fn);$(document).on('click', 'a', fn);$('a').die('click');$(document).off('click', 'a'); |
浙公网安备 33010602011771号