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); |