Сначала подумал, что вы должны использовать data-who="student"
вместо who
, таким образом, вы можете использовать $(this).parent().data('who')+'.html'
Теперь, когда вы обновили, чтобы включить больше кода, недостатокболее очевидно.this
в этом контексте на самом деле window
, потому что вы находитесь внутри обработчика $(window).load()
.Попробуйте сделать что-то вроде этого:
// fires on document ready, not quite window load, but better:
$(function() {
$('.spotlight').each(function() {
var spot = $( this ),
caption = $("<div class='caption'></div>").appendTo(spot);
caption.load( spot.data('who') + '.html' );
spot.hover(function() {
caption.animate({ top : '-=50px' }, 150)
}, function () {
caption.animate({ top : '+=50px' }, 150)
});
});
});