Почему $(this) работает с.hover(), а не с.ready()?
Итак, я пытаюсь получить backstretch.js для работы с несколькими div, которые загружаются из БД.
но я не могу получить отдельное изображение для каждого div.
Это прекрасно работает, когда я наведите курсор на поля, появляется фон, но я не хочу, чтобы он загружался, как только страница загружается.
$(".tournament-thumb").hover(
function(){
$(this).backstretch($(this).data("url"));
}
);
Я пробовал это с .ready() без какого-либо результата это, кажется, не регистрирует "$(это)"?:
$(".tournament-thumb").ready(
function(){
$(this).backstretch($(this).data("url"));
}
);
Вот HTML-код:
<div class="tournament-thumb" data-url="images/image.jpg"></div>
Пожалуйста, помогите мне... Если есть лучший способ, чем это, пожалуйста, ответьте с этим тогда:)
3 ответа
Из документов:
Метод.ready() может быть вызван только для объекта jQuery, соответствующего текущему документу, поэтому селектор можно опустить
Так что вы можете использовать только $(document)
для ready()
метод.
Возможно, лучшее решение - это привязать делегирование к объекту документа, как
$(document).on('hover','.tournament-thumb',function(){
$(this).backstretch($(this).data("url"));
});
Хорошо, я решил это с помощью jQuery.each
$.each($(".tournament-thumb"), function() {
$(this).backstretch($(this).data("url"));
});