modified updateCache to respect visibility. if options are explicitly
hidden (with display:none), then they are ignored