Решение, которое я нашёл:
Функция setup нормально вызывается этим:
<body onload='setup();' >
(программисты тоже люди и должны иногда спать!)
Но проблема заключалась в том, что эта функция обращается ко всем частям целой HTML - даже к тем которые теперь не показываются ввиду разделения её на части - страницы jQuery.
Моё решение - разделить функцию тоже на части, поместив внутрь неё switch оператор:
switch (location.hash){
case '#page1':
setPage1();
break;
case '#page2':
setPage2();
break;
case '#page3':
case '':
setPage3();
break;
default:
console.log('*** wrong hash: '+location.hash);
}
Кто может предложить более элегантное решение, не использующее switch?