将参数传递给jQuery中的事件处理程序

ari*_*iel 2 javascript parameters jquery

我如何向处理程序发送一个外部作用域的变量?

i = 1;
$(id).change(function() {myHandler(i)});
i = 2;
Run Code Online (Sandbox Code Playgroud)

调用时,参数为2.

也尝试作为字符串,在DOM中工作,但在jQuery中不起作用:

$(id).change('myHandler(' + i + ')');
Run Code Online (Sandbox Code Playgroud)

dev*_*ang 8

假设你想传递数据对象,

var data = {i: 2};
$(id).change(data, myHandler);
Run Code Online (Sandbox Code Playgroud)

myHandler功能中:

function myHandler(event) {
    var i = event.data.i; // <= your data
}
Run Code Online (Sandbox Code Playgroud)

如果稍后修改,该值将作为参数传递,不会被反映.