javascript范围问题
代码片段如下所示:javascript范围问题,javascript,jquery,scope,Javascript,Jquery,Scope,代码片段如下所示: $(this).parents('td:first').next().find('option').customizeMenu('myMenu2'); 这是可行的,但是: var listener = function(){ $(this).parents('td:first').next().find('option').customizeMenu('myMenu2'); }; listener(); 不工作,为什么以及如何修复它?'this'在放入函数时不指向同一对
$(this).parents('td:first').next().find('option').customizeMenu('myMenu2');
这是可行的,但是:
var listener = function(){
$(this).parents('td:first').next().find('option').customizeMenu('myMenu2');
};
listener();
不工作,为什么以及如何修复它?'this'在放入函数时不指向同一对象,它指向当前函数(在您的示例中为'listener')。如果这是一个选项,则将其作为一个参数(取决于调用函数的方式)
这是函数。尝试:
var listener = function(element){
$(element).parents('td:first').next().find('option').customizeMenu('myMenu2');
};
listener(this);
var listener = function(element){
$(element).parents('td:first').next().find('option').customizeMenu('myMenu2');
};
listener(this);