我如何将外部范围内的变量发送给处理程序?

i = 1;
$(id).change(function() {myHandler(i)});
i = 2;

调用时,参数为2。

也尝试作为字符串,在DOM中起作用,但在jQuery中不起作用:
$(id).change('myHandler(' + i + ')');

最佳答案

假设您要传递数据对象,

var data = {i: 2};
$(id).change(data, myHandler);

myHandler函数中:
function myHandler(event) {
    var i = event.data.i; // <= your data
}

该值将作为参数传递,如果以后修改将不会得到体现。

10-07 18:10