Я не уверен, является ли это проблемной областью, но я бы не стал передавать pfb в качестве параметра в этом событии onclick - я думаю, это может повторно инициализировать pfb или создать новую переменную.
Если вы создаете его глобально (не идеально, но должно работать), тогда вам не нужно передавать pfb как параметр в любом случае.
Кроме того, хорошей практикой является не прикреплять события к таким элементам, кактот.В идеале - и jQuery делает это очень легко - у вас должно быть что-то в вашем $ (документе). Вот так:
$(document).ready(function() {
$("#myButton").click(function() {
showProjects();
});
});
Или даже сократите это до
$(document).ready(function() {
$("#myButton").click(showProjects());
});
, если вы знаетеэтот showProjects () - единственный вызов, который вы хотите сделать.