代码片段如下:
$(this).parents('td:first').next().find('option').customizeMenu('myMenu2');
这可行,但是:
var listener = function(){
$(this).parents('td:first').next().find('option').customizeMenu('myMenu2');
};
listener();
不工作,为什么以及如何修复它?
最佳答案
“this”在放入函数时并不指向同一个对象,它指向当前函数(在您的情况下为“监听器”)。如果可以选择的话,请将其作为参数(这取决于您如何调用函数)。
var listener = function(obj){
$(obj).parents('td:first').next().find('option').customizeMenu('myMenu2');
};
listener(this);
关于JavaScript作用域问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1858980/