.on()
|
为集合中每个元素的特定事件绑定事件处理函数。具体用法见下方示例:
// 绑定点击事件
$('.box').on('click', function (e) {
console.log('点击了 .box 元素');
// 绑定多个事件
$('.box').on('click focus', function (e) {
console.log('click 和 focus 事件都会触发该函数');
// 事件委托
$(document).on('click', '.box', function (e) {
console.log('点击 .box 时会触发该函数');
// 同时绑定多个事件和事件处理函数
$('.box').on({
'click': function (e) {
console.log('触发了 click 事件');
'focus': function (e) {
console.log('触发了 focus 事件');
// 传入参数
$('.box').on('click', { key1: 'value1', key2: 'value2' }, function (e) {
console.log('点击了 .box 元素,并为事件处理函数传入了参数');
// e._data 为 {key1: 'value1', key2: 'value2'}
// 同时绑定多个事件和事件处理函数,并传入参数
$('.box').on({
'click': function (e) {
console.log('触发了 click 事件');
// e._data 为 {key1: 'value1', key2: 'value2'}
'focus': function (e) {
console.log('触发了 focus 事件');
// e._data 为 {key1: 'value1', key2: 'value2'}
}, { key1: 'value1', key2: 'value2' });
// 通过事件委托绑定事件,并传入参数
$(document).on('click', '.box', { key1: 'value1', keys: 'value2' }, function (e) {
console.log('点击了 .box 元素,并为事件处理函数传入了参数');
// e._data 为 {key1: 'value1', key2: 'value2'}
// 通过事件委托同时绑定多个事件和事件处理函数
$(document).on({
'click': function (e) {
console.log('触发了 click 事件');
'focus': function (e) {
console.log('触发了 focus 事件');
}, '.box');
// 通过事件委托同时绑定多个事件和事件处理函数,并传入参数
$(document).on({
'click': function (e) {
console.log('触发了 click 事件');
// e._data 为 {key1: 'value1', key2: 'value2'}
'focus': function (e) {
console.log('触发了 focus 事件');
// e._data 为 {key1: 'value1', key2: 'value2'}
}, '.box', { key1: 'value1', key2: 'value2' });
// 获取事件参数
$('.box').on('click', function (e, data) {
// data 等于 e._detail
// 事件名支持使用命名空间
$('.box').on('click.myPlugin', function () {
console.log('点击了 .box 元素');
});
|
.off()
|
为集合中每个元素解除绑定的事件。具体用法见下方示例:
// 解除所有绑定的事件处理函数
$('.box').off();
// 解除绑定的指定事件
$('.box').off('click');
// 同时解除多个绑定的事件
$('.box').off('click focus');
// 解除绑定的指定事件处理函数
$('.box').off('click', callback);
// 解除通过事件委托绑定的事件
$(document).off('click', '.box');
// 解除通过事件委托绑定的指定事件处理函数
$(document).off('click', '.box', callback);
// 同时解绑多个事件处理函数
$('.box.').off({
'click': callback1,
'focus': callback2,
// 同时解绑多个通过事件委托绑定的事件处理函数
$(document).off({
'click': callback1,
'focus': callback2,
}, '.box');
// 事件名支持使用命名空间,下面的用法将解绑所有以 .myPlugin 结尾的事件
$(document).off('.myPlugin');
|