jQuery on() 方法问题

<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js">
</script>
<script>
function f1(i){
alert("段落被点击了。"+i.data.this);
}

$(document).ready(function(){
$("p").on("click",{this:5},f1);
});
</script>
</head>
<body>

<p>点击这个段落。</p>

</body>
</html>

 

.on( events [, selector ] [, data ], handler(eventObject) )

handler参数必须是一个函数(或false值,见下文),  除非你传递一个对象给events参数。 您可以提供一个匿名处理函数给.on()调用,就像上面例子中的用法,或者可以声明一个函数,然后再将该函数名作为参数:

1
2
function notify() { alert("clicked"); }
$("button").on("click", notify);

 

 

如果data参数给.on()并且不是null 或者 undefined,那么每次触发事件时,event.data都传递给处理程序。data参数可以是任何类型,但如果是字符串类型时,那么selector参数必须提供,或明确地传递null,这样的 data 参数不会误认为是选择器。最好是使用一个对象(键值对) ,所以可以作为属性传递多个值。

jQuery的1.4 ,相同的事件处理程序可以多次绑定到一个元素。这对于使用 event.data 功能,或者在闭包中使用唯一的数据时是特别有用的。例如:

1
2
3
function greet(event) { alert("Hello "+event.data.name); }
$("button").on("click", { name: "Karl" }, greet);
$("button").on("click", { name: "Addy" }, greet);

 

posted @ 2017-12-07 11:42  ~雨落忧伤~  阅读(242)  评论(1编辑  收藏  举报