A user experienced intermittent disappearance of their site header and add-to-cart buttons on published pages (not in staging). The issue was traced to a JavaScript conflict between two jQuery versions:
The Palo Alto theme loads jQuery 3.5.1 with a throttle plugin
The PreOrder Now app loads its own jQuery 3.4.1
During a brief moment when the app’s jQuery takes control before running noConflict mode, the theme’s throttle function becomes undefined, causing errors
Proposed solutions:
Prevent the app from loading its own jQuery by adding np.shop.never_load_jquery = true; before the </head> tag
Delay app execution by adding defer="defer" to the app’s script tag
Combine both approaches if necessary
Resolution: The original poster switched to a different app due to time constraints before launch, though they acknowledged the technical fix for future reference.
A secondary participant had a different issue (disappearing horizontal menu) which was resolved by shortening menu item titles to prevent overflow triggering the mobile hamburger menu.
Summarized with AI on November 11.
AI used: claude-sonnet-4-5-20250929.
My header (the menu and logo at the top) and my “add to cart/pre-order” button of product pages are randomly disappearing after I publish my theme. No problem in staging, but if I publish, it’ll disappear randomly, if you click through a few pages and products, eventually it goes away. If I refresh several times it’ll come back.
I’m using the Palo Alto theme, and I’ve got the Pre-order Now app running. Any ideas out there??
I don’t think that is the problem, seems like if it was in the CSS it would never be viewable, but the problem is random. It appears whenever the issue persist, I see a $.throttle is not a function type error.
Good catch of $.throttle undefined – and a very interesting case of jQuery overload.
Your theme includes jQuery library (ver 3.5.1) as part of theme.js. Then it adds a throttle plugin to this copy of jQuery. Later it calls PaloAlto.Header function and all of a sudden there is no throttle plugin?!
However, you have a PreOrder Now app and it loads it’s own copy of jQuery (3.4.1). I must admit, the app loads jQuery in a responsible way by using it in noConflict mode.
However, looks like browser is able to run the aforementioned Header function in a split moment after the jQuery 3.4.1 is loaded (and took control of $ variable) and before the app code runs jQuery.noConflict to restore $ back to what it was (themes own 3.5.1).
There are several ways to try to fix this problem.
tell the app to not load it own jQuery at all by adding this code right before tag in your theme.liquid Layout – it should be able to use theme jQuery just right:
Ah yes! Thank you Tim. This is exactly it. I ended up going a lazy route and just switched apps. However, long term if I decide to switch back I’ll have to implement this fix(es). Not being a much of a programmer, and in a huge rush to launch this weekend, it was quicker and less error prone to just switch. Thank you!
I’ve tried to find a similar problem/ fix online and this so far is the most similar to my problem but those codes you posted before don’t work. Is there any way to adjust the codes above to that it works for my site? Please see my own disappearing issue here:
do you mean that your horizontal menu is hidden and instead there is a hamburger button with word “menu” on the left?
This is by design and I’m pretty sure it was discussed here in the forum multiple times.
Your theme (legacy Venture theme) initially shows the horizontal menu.
However, to prevent overflow or menu wrapping to a second line, the code checks if entire menu fits inside container on one line and if not, it hides horizontal menu and shows the hamburger button with slide-out menu instead.
Whether it will happen depends on the width of your browser window, font size, padding between menu items and your menu item titles.
Say, you have “Featured designs” menu item. You can rename it to simple “Featured” (even if only to test) and see how it will affect the header behaviour.