我写一些jQuery代码,如下所示:

$('.button').each(function(){
    $(this).click(function(){
        console.log($(this));
        do_sth();
    });
});

var do_sth = function(){
    console.log($(this));
}


我希望console.log结果相同,但是工作不正确...第一个引用HTMLElement,但是第二个引用DOMWindow ...
如何重写do_sth函数以使它们全部引用HTMLElement?
谢谢。

最佳答案

你可以做...

do_sth.call(this);


另外,您可以使用jQuery的proxy()方法。

$.proxy(do_sth, this)();


jsFiddle

10-01 09:17
查看更多