我为这个令人困惑的头衔道歉;我希望有一个例子可以帮助澄清事情。
$(".element").functionName({
option1:true,
doneFunc: function(){
thisElem = $(this);
functionName2(thisElem);
}
});
我正在尝试将“.element”的特定实例传递给functionName2。
答案 0 :(得分:1)
您可以在运行回调之前将元素设置为变量。
示例:
var $element = $(".element");
$element.functionName({
option1:true,
doneFunc: function(){
functionName2($element);
}
});
这将"保存元素"在变量$ element中,所以你可以在函数内部使用它。
Javascript中的范围是功能级别的。这意味着在给定范围内定义的函数将可以访问定义它的环境。我们知道doneFunc
可以访问$element
变量。这个内部函数通常称为"lexical closure"
如果你有多个元素,我认为最好的方法是迭代你自己。
例如:
$('.element').each(function() {
var $element = $(this);
$element.functionName({
option1:true,
doneFunc: function(){
functionName2($element);
}
});
});
这里我们看到了使用中的词法闭包。