我想知道是否可以从外部函数中恢复存储在内部函数中的值。
这是代码:
$('#down').click(function(){
test();
console.log(d); //d is not defined
});
function test(){
$(".block").each(function(ind, ele) {
var block = $(ele);
// ....
var d = $(block).attr("id");
});
}
$(window).on("resize", test);
取决于调整大小“var d”假定我需要在click函数中使用不同的值。
谢谢。
答案 0 :(得分:1)
您必须将d保存到两个函数范围均可访问的变量中:
(function() {
var d;
$('#down').click(function(){
test();
console.log(d); //d is now set
});
function test(){
$(".block").each(function(ind, ele) {
var block = $(ele);
// ....
d = $(block).attr("id");
});
}
$(window).on("resize", test);
})();
通过将两个函数包装在另一个函数中,它将d的范围限制为这两个函数。
请注意,它只是点击事件处理程序中可以访问的d的最后一个设置值。