问题描述
假设我有这样的代码:
$('.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?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!