jquery下on写法

看到一段这样的代码
突然对jquery的on事件有些疑惑
第二个参数不是一个指定的元素吗,第三个是个function
下面这种第二个是个对象,第三个是对象下的方法这是怎么回事?

init: function () {
    var a = this;
    
    if (this.inited) {
        return this;
    }
    this.inited = true;

    $('#showbox').on('click', {a: a}, this.onEventList);
}
阅读 2.9k
2 个回答

上面的这种写法 第一个参数不多说,第二个参数:规定传递到函数的额外数据(将数据传递到第三个参数)。第三个参数:规定当事件发生时运行的函数,对象下的方法也是一个函数。看看这个

jquery 的on语法为

$('element').on(events[,selector][,data],handler)

第一个参数就是事件
第二个参数是一个选择器,用于过滤选择元素$('element')的哪些子节点触发这个事件。 selector如果为null或者缺失,则事件到达$('element')就触发
第三个参数是传递给事件处理程序(event.data)的数据
第四个参数就是处理函数了

因此,上面的语句是将{a:a}对象作为数据(event.data)传递给onEventList函数

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进