я хотел бы пройти через каждого человека и получить размер изображения. С высотой и шириной я могу установить высоту и ширину для div ".text-person-show".
$(window).load(function () {
$(".person").each(function () {
var h = $(this).find(".person-image").height();
var w = $(this).find(".person-image").width();
$(this).hover(function () {
alert(w);
$(this).find(".person-image").toggle();
$(this).find(".text-person").toggle();
$(this).find(".text-person").toggleClass("text-person-show", 'add');
$(".text-person-show").width(w).height(h);
});
});
});
HTML:
<div class="person">
<div class="person-post">
<div class="person-image"> <img src="<?php the_field('image'); ?>"></div>
<div class="text-person">
<div class="text-inner">
<div class="name-person-text-inner"><?php the_title(); ?>
</div>
</div>
</div>
</div>
Вопрос: почему я получаю только предупреждение (w) для первого ".person"? Я не понимаю сейчас! переменная область?
Много спасибо !!!
попробуйте под кодом и используйте событие.on для будущих событий, а также удалите каждый цикл.
$(window).load(function () {
$('.person').on('hover', function () {
var h = $(this).find(".person-image").height();
var w = $(this).find(".person-image").width();
alert(w);
$(this).find(".person-image").toggle();
$(this).find(".text-person").toggle();
$(this).find(".text-person").toggleClass("text-person-show", 'add');
$(".text-person-show").width(w).height(h);
});
});
Боковое примечание Как было предложено Дэвидом Томасом:
on() был доступен в jQuery версии 1.7 (в этот момент live() устарел). В jQuery до 1.7 команда jQuery рекомендовала в документации API для самого метода использовать делегат(). Функция live() имеет ряд проблем (цепочка, разбухание событий и производительность) и не должна использоваться даже там, где она доступна (если не подтверждены компромиссы в documentaiton для метода).
on()
был доступен в jQuery с версии 1.7 (в этот момент live()
устарела). В jQuery до 1.7 команда jQuery рекомендовала в документации API для самого метода использовать delegate()
. live()
есть ряд проблем (цепочка, всплывающее событие и производительность), и ее не следует использовать даже там, где она доступна (если не подтверждены компромиссы в документе для метода).