Почему "$(this)" не работает.data ширины на jquery-backstretch?
Поэтому я пытаюсь заставить $ (это) работать.
Это не работает:
$(".tournament-thumb").backstretch($(this).data("url"));
Но это делает:
$(".tournament-thumb").backstretch($(".tournament-thumb").data("url"));
Мне нужно взять URL из данных. Вот HTML-код:
<div class="tournament-thumb" data-url="{{asset('images/tournament/' . $tournament->image)}}">
Я пропускаю какую-то важную часть с $(this) и.data?
1 ответ
Решение
С помощью 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
});