Это не проблема jQuery.
Это происходит потому, что изображение при наведении курсора еще не было загружено, когда вы наводите указатель мыши на заголовок, поэтому браузер должен загрузить его при необходимости, и это может занять некоторое время.
У вас есть два основных варианта:
Предварительная загрузка ваших изображений, так что они будут загружаться, даже если они не нужны сразу, а когда они вам понадобятся, они готовы к отображению.
Используйте одно изображение, содержащее как обычное изображение, так и изображение при наведении, это называется sprite . Таким образом, будет загружено полное изображение, и вы больше не столкнетесь с этой проблемой. Затем вам нужно изменить положение фона, чтобы отобразить другое изображение. Вы можете сделать это, создав другой класс в ваших правилах CSS с разными координатами положения фона. В JS этот класс нужно назначать только тогда, когда мышь находится над заголовком и отображает его.
Если вы не хотите делать это вручную, есть также онлайн-инструменты, которые могут сделать работу за вас. Обычно использование этих инструментов не рекомендуется, но я думаю, что для двух изображений одинакового размера все в порядке.