代码段如下:
$(this).parents('td:first').next().find('option').customizeMenu('myMenu2');
这有效,但是:
var listener = function(){
$(this).parents('td:first').next().find('option').customizeMenu('myMenu2');
};
listener();
不起作用,为什么以及如何解决?
答案 0 :(得分:6)
'this'在放入函数时不指向同一个对象,它指向当前函数(在你的情况下是'listener')。如果这是一个选项(取决于你如何调用你的函数),请将它作为参数。
var listener = function(obj){
$(obj).parents('td:first').next().find('option').customizeMenu('myMenu2');
};
listener(this);
答案 1 :(得分:3)
this
是函数。尝试:
var listener = function(element){
$(element).parents('td:first').next().find('option').customizeMenu('myMenu2');
};
listener(this);