1

我有以下代码:

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

4

2 回答 2

3

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

于 2012-09-25T18:48:20.923 回答
1

是的,您在这两种情况下传递的方式都是完全合法的。这还具有缓存和重用它的优点,而不是每次使用时都尝试访问它。

于 2012-09-25T19:04:35.740 回答