我如何向处理程序发送外部范围内的变量?
i = 1;
$(id).change(function() {myHandler(i)});
i = 2;
调用时,参数为 2。
也尝试作为字符串,它在 DOM 中工作,但在 jQuery 中不起作用:
$(id).change('myHandler(' + i + ')');
我如何向处理程序发送外部范围内的变量?
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
}
如果稍后修改,该值将作为参数传递,不会得到反映。
通过调用一个接受 i 作为参数并返回一个函数的函数,您可以创建一个捕获 i 的当前值的闭包。
function changeHandlerClosure(i) {
return function() {
//do stuff here with i
};
}
i = 1;
$(id).change(changeHandlerClosure(i));
i = 2;
这避免了与 DOM 的交互,这有时更方便但速度较慢。