在此示例中,我可以定义一个变量来替换$(this)的使用吗?

时间:2012-09-25 18:47:03

标签: javascript jquery

我有以下代码:

$('#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上的代码审查中。有人需要修复登录问题,因为我无法连接到我的堆栈帐户:-(

2 个答案:

答案 0 :(得分:3)

是的,foo = $(this)完全合法且合法。事实上,这并非完全不常见。当您觉得需要在jQuery对象中反复包装this时,这样做是明智的。这样,您可以将其包装一次,并提供工作参考,从而提供性能优势。

答案 1 :(得分:1)

是的,你通过这两种情况的方式是完全合法的.. 这也具有缓存和重用它的优点,而不是每次使用时都尝试访问它。