I have better luck with the ones with a strap-especially the straps that Velcro since they are so adjustable. I've actually added straps to hats to help DS keep them on. It's still a limited time thing, but every once in a while he'll wear one for a long time if it has a strap.
DH also wears a hat often so I show DS that he can be like daddy when he wears his hat-that sometimes help keep the hat on.