un amico che ha visto il codice mi ha aiutato a risolvere.... in pratica lo script sul file esterno ha bisogno di una riga aggiuntiva:

codice:
$(document).ready(function () {
Il tuo amico ti ha suggerito bene; questo in effetti è l'altro errore più comune tra quelli commessi da chi si avvicina all'uso di JavaScript (a prescindere dalla libreria utilizzata).

Chiaramente quando si seleziona un elemento del DOM, è necessario assicurarsi che sia già stato creato sulla pagina. Il ready non è altro
che una sorta di evento load della pagina che esegue la funzione di callback quando tutto il contenuto della pagina è disponibile alla manipolazione tramite JavaScript.

Spero possa essere utile anche ad altri
Sicuramente può esserlo. Grazie per aver postato la soluzione

Buon proseguimento