Т.к. кликнут ещё неизвестно, когда, а код срабатывает сразу при загрузке страницы, не обойтись без асинхронности и отлова событий. По клику сработает одна функция, которая получит значение data-атрибута кликнутого элемента. И, чтобы усложнить всё, запустит ещё одно событие – на этот раз глобального объекта window, который «видно» из любого участка кода. И уже событие на window можно слушать где угодно, и получить значение из data кликнутого элемента.
$(".image-portfolio").on( 'click', function(){
window.dispatchEvent(
new CustomEvent( 'sect', { detail: $(this).data("section")} )
);
});
// где-то далеко далеко ловим данные из события
window.addEventListener('sect', function(e) {
$('body').append('<div>кликнули на ' + e.detail + '</div>');
});
попробовать
На деле достаточно правильно распорядиться полученным значением сразу в первой части кода. Просто захотелось вспомнить, как «бросать» собственные события.