本文介绍了我如何引用外部的“$(this)”在jquery?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我有这样的代码:

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

我通过的 $(this) doSomething 函数是第二个 jquery括号中的内容 - $('#'+ $(this).attr ('id')+_Suffix)。我如何引用第一个括号中的内容 - 这引用的原始内容是什么? ( $('。myClass')。每个

The $(this) that I pass to the doSomething function is what's in the second jquery parenthesis - $('#' + $(this).attr('id') + "_Suffix"). How do I reference what's in the first parenthesis - what the original this referred to? ( $('.myClass').each )

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

I assume I could save it into a variable, and then use that variable:

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

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

But is there any way to reference it without doing this?

推荐答案

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

You need to put it in a separate variable:

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

此外, livequery 已弃用;你应该使用代替。

Also, livequery is deprecated; you should use live instead.

这篇关于我如何引用外部的“$(this)”在jquery?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-03 10:03