Если вызов привязки события вызывается перед вызовом openInfoWindowHtml, как в вашем примере, диапазон не был в DOM, пока первый вызов искал элементы с классом "foo", поэтому обработчик не был присоединен .
Вы можете либо переместить этот обработчик события для вызова после openInfoWindowHtml, либо использовать «живое» связывание событий, чтобы jQuery отслеживал DOM для любых новых элементов с данным селектором.
$(".foo").live('click', myFunction);