We have to guess that your HTML is correct, since you didn't post it.
Break it down into separate concerns. Forget about loading JSON until your mouseenter works correctly. Use console.log() to debug.
BTW, I notice that you get the JSON every time you get mouseenter. That's silly, unless the server might return a different list.
Of course, you can store the retrieved data. Just store the parsed data (not the original JSON) in a variable. Only fetch from the server if the variable is undefined.