我有以下代码:
$('#detailData')
.on('click', '.gridLink', function () {
dialog(this);
return false;
})
function dialog(link) {
var $link = $(link);
var viewURL = $link.attr('data-href')
我说我可以用这个代替吗?
$('#detailData')
.on('click', '.gridLink', function () {
var $gridLink = $(this);
dialog($gridLink);
return false;
})
function dialog($gridLink) {
var viewURL = $gridLink.attr('data-href')
我尝试将其放在stackoverflow.com上的代码审查中。有人需要修复登录问题,因为我无法连接到我的堆栈帐户:-(
答案 0 :(得分:3)
是的,foo = $(this)
完全合法且合法。事实上,这并非完全不常见。当您觉得需要在jQuery对象中反复包装this
时,这样做是明智的。这样,您可以将其包装一次,并提供工作参考,从而提供性能优势。
答案 1 :(得分:1)
是的,你通过这两种情况的方式是完全合法的.. 这也具有缓存和重用它的优点,而不是每次使用时都尝试访问它。