W mojej witrynie mam kilka menu css, które rozwijają się o :hover(bez js)
Działa to w częściowo zepsuty sposób na iDevices, na przykład dotknięcie aktywuje :hoverregułę i rozszerzy menu, ale stuknięcie w innym miejscu nie spowoduje usunięcia :hover. Również jeśli w elemencie, który jest :hover'ed, znajduje się link , musisz dwukrotnie dotknąć, aby aktywować łącze (pierwsze :hoverdotknięcie wyzwala łącze, drugie dotknięcie wyzwala łącze).
Udało mi się sprawić, że wszystko działa dobrze na iPhonie, wiążąc touchstartwydarzenie.
Problem polega na tym, że czasami mobilne safari nadal wybiera wyzwalanie :hoverreguły z css zamiast z moich touchstartwydarzeń!
Wiem, że to jest problem, ponieważ kiedy wyłączam wszystkie :hoverreguły ręcznie w css, mobilne safari działa świetnie (ale zwykłe przeglądarki już oczywiście nie).
Czy istnieje sposób na dynamiczne „anulowanie” :hoverreguł dla niektórych elementów, gdy użytkownik korzysta z mobilnego safari?
Zobacz i porównaj zachowanie iOS tutaj: http://jsfiddle.net/74s35/3/ Uwaga: tylko niektóre właściwości css wyzwalają zachowanie dwóch kliknięć, np. Display: none; ale nie tło: czerwone; lub dekoracja tekstu: podkreślenie;
