jQuery提供了一系列便捷事件监听的方法,该方法同时允许传递一个参数,可以通过以下代码来了解:
HTML部分:
```<div>jQuery事件参数解读</div>
JS部分:
$("div").click(999,function(event){
alert(event.data);
})
那么引出本文的问题:
- click方法内函数的event是什么?
当click方法调用函数时,会默认返回一个事件对象作为该函数的参数,这里的event就是该事件本身。 - event.data中的data又是什么?
click返回的事件中,默认添加了一个data属性,如果我们在.click()方法中尝试传入参数的时候,该参数将被传递给data属性,同理,我们在调用这个属性的时候,也必须指定该属性的对象是谁,所以才使用 event.data 这句来调用该属性。
那么?data是用来承载参数的事件的属性,那么data是什么类型呢?
data实际上是一个对象,因为对象可以拥有各种属性和方法,那么我们也可以将data的对象属性进行扩展,如下面的代码:
var userObj = {name:"imooc",age:999}
$("div").click(userObj,function(event){
alert(event.data.name); //输出 imooc
})
以上可以得出结论:
- click方法,调用函数的时候,会默认返回事件对象和该事件对象的data属性;
- 如果需要使用该事件对象,必须给该事件对象命名,即函数中的参数;
- .click方法,传入的任何参数或对象,都会被赋值给data属性,所以调用的时候,必须使用 data 来调用