如何在jquery中引用外部的"$(this)"?

fro*_*die 3 jquery this

假设我有这样的代码:

$('.myClass').each(function(){
    $('#' + $(this).attr('id') + "_Suffix").livequery('click', function(){
        doSomething($(this));
    });
});
Run Code Online (Sandbox Code Playgroud)

$(this)我传递给doSomething函数是什么在第二 jQuery的括号- $('#' + $(this).attr('id') + "_Suffix").我如何引用第一个括号中的内容 - 这引用的原始内容是什么?($('.myClass').each)

我假设我可以将它保存到变量中,然后使用该变量:

$('.myClass').each(function(){
    outerThis = $(this);
    $('#' + $(this).attr('id') + "_Suffix").livequery('click', function(){
        doSomething($(outerThis));
    });
});
Run Code Online (Sandbox Code Playgroud)

但有没有办法在不这样做的情况下引用它?

SLa*_*aks 7

你需要将它放在一个单独的变量中:

$('.myClass').each(function(){
    var outer = $(this);
    $('#' + $(this).attr('id') + "_Suffix").livequery('click', function(){
        doSomething(outer);
    });
});
Run Code Online (Sandbox Code Playgroud)

此外,livequery已被弃用; 你应该用live.