为什么“$(this)”在jquery-backstretch上工作宽度.data?

时间:2014-03-01 00:59:01

标签: jquery this jquery-backstretch

所以我试图让$(this)起作用。

这不起作用:

$(".tournament-thumb").backstretch($(this).data("url"));

但这样做:

$(".tournament-thumb").backstretch($(".tournament-thumb").data("url"));

我需要从数据中获取网址。这是HTML:

<div class="tournament-thumb" data-url="{{asset('images/tournament/' . $tournament->image)}}">

我是否错过了$(this)和.data的一些重要部分?

1 个答案:

答案 0 :(得分:3)

在参数语句中使用this不会更改其上下文。它仍然引用与周围范围内任何其他地方相同的对象

function x(){
    //this in here and the function parameter call refers to the same object
    console.log(this)
    $(".tournament-thumb").backstretch($(this).data("url"));
}

在jQuery中,如果将回调传递给函数,那些函数this内部很可能会引用当前正在使用的dom元素。

如果它像

那样
$(".tournament-thumb").backstretch(function(){
    //do something
    //here this might refer to the tournament-thumb element
});