Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iPad ios 13.1 menu item link problem #182

Open
pitcock opened this issue Oct 20, 2019 · 17 comments
Open

iPad ios 13.1 menu item link problem #182

pitcock opened this issue Oct 20, 2019 · 17 comments

Comments

@pitcock
Copy link

pitcock commented Oct 20, 2019

on my ipad with ios 13.1, the submenu can be opened with a touch of the first level menu item. however, the link on the first level menu item doesn't work then.

@stephangrass
Copy link

Hi. Same problem here.

You have to tap 3 times quickly ... but this ist not really a solution ;-)

The problem occures on ipads with iOS greater than 13.x.

@joeldbirch
Copy link
Owner

Thank you both for the report. I imagine the issue is due to Apple adding mouse support to iOS Safari. Unfortunately, I won’t have time to look at a fix until mid December at earliest.

I have an interesting CSS fix in mind. In fact, I don’t use Superfish anymore as I find everything with pure CSS, nowadays. Hoping to chance to put together a pure CSS example with feature parity so we can cut the jQuery ties once and for all.

@stephangrass
Copy link

Hi Joel,
thanks for your response. I think pure css will be a solution. But I use superfish in several websites and it will be terrible to change them all.

For a quick & dirty solution this will work (I think):

Add

if(navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1) { return this; }

at the beginning of touchHandler = function (e)

Hoping to chance to put together a pure CSS example with feature parity so we can cut the jQuery ties once and for all.

Joel, if you will/can do this (or fix superfish seriously), I will help by sponsoring.

Stephan

@pitcock
Copy link
Author

pitcock commented Nov 5, 2019

this solution works for me. many thanks. a pure css solution would of course be future-proof, but i like the hoverintent integration very much.

@zhrance
Copy link

zhrance commented Jan 6, 2020

Thank you both for the report. I imagine the issue is due to Apple adding mouse support to iOS Safari. Unfortunately, I won’t have time to look at a fix until mid December at earliest.

I have an interesting CSS fix in mind. In fact, I don’t use Superfish anymore as I find everything with pure CSS, nowadays. Hoping to chance to put together a pure CSS example with feature parity so we can cut the jQuery ties once and for all.

Really looking forward for your pure CSS solution. These days I was hesitating to keeping using Superfish or create my own pure CSS solution. With this confirmation I start coding some pure CSS. If you want to I can share my code.

@twisk
Copy link

twisk commented Feb 13, 2020

+1

@renderorange
Copy link

renderorange commented Jun 16, 2020

We see this issue also on iOS 13.5.1 for iPhone, but the fix noted above in issuecomment-549307916 doesn't appear to work.

My best guess is the issue is related to the timeout not being reset for iOS devices. As noted previously, if you click 3 times very quickly you can get the link to work, but it's not a normal speed most people will use their phones.

If you remove the iOS specific logic from the out function, it appears to work correctly.

out = function () {
    var $this = $(this),
        o = getOptions($this);

    clearTimeout(o.sfTimer);
    o.sfTimer = setTimeout($.proxy(close, $this, o), o.delay);
},

I tried to find comments in the commit history explaining why the iOS devices don't have the same logic to clearTimeout and setTimeout, but wasn't able to find much. Any insight to why iOS is set to operate differently would be helpful.

@joeldbirch
Copy link
Owner

I don’t remember why it was so important to prevent applying the delay to iOS, but it was surely a product of it not needing hover behaviour. Now iOS supports pointers, I imagine Apple have shuffled a bunch of things around, no doubt affecting Superfish’s ancient functionality.

@stevengliebe
Copy link

Thanks @renderorange, did the trick for me. Funny thing is that I only saw the issue on two out of five implementations of Superfish (all same version, checking with Chrome on iPad). There might be a factor additional to iOS.

@wpexplorer
Copy link

None of these solutions seem to be working for me (using superfish+hoverIntent). Any other ideas?

@stevengliebe
Copy link

@wpexplorer This is my modified version. Didn't see it working until cleared cache and reloaded a few times.

https://demos.churchthemes.com/jubilee/wp-content/themes/jubilee/js/lib/superfish.modified.js

@wpexplorer
Copy link

@stevengliebe - I actually got it working with some changes, I'll check yours out though to compare. Thanks!!

@kimisgold
Copy link

I'm still having this issue on iPadOS 14.6. I've tried both the latest version of superfish and @stevengliebe's modified version to no avail. You can only click through to the top level link by tapping thrice quickly. Can anyone provide guidance?

@wpexplorer
Copy link

@kimisgold - This is what I use with success: https://gist.github.com/wpexplorer/95ad7b5e5779fc68a8816c323f5f9976

@kimisgold
Copy link

@wpexplorer I cleared cache and used your gist. Ideally a second click would click through to the top link destination: your modification now enables click through on the third click even at slower tap speeds.

@wpexplorer
Copy link

wpexplorer commented Aug 2, 2021

@kimisgold - I don't know how your testing (how slow your taps are) but for me it works on the second tap not the 3rd when tapping on it normally.

(edit, I'm also using the HoverIntent plugin...forgot to mention)

@djmolny
Copy link

djmolny commented Jun 23, 2022

@kimisgold - This is what I use with success: https://gist.github.com/wpexplorer/95ad7b5e5779fc68a8816c323f5f9976

+1. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants