内容加载后,iPad通过AJAX

时间:2018-04-13 09:55:06

标签: javascript jquery html css ajax

我在iPad上的网页上有一个非常奇怪的行为(仅限)。我的Web应用程序基于AJAX加载。因此,页面的某些部分(如过滤器和主线框)是静态的,但计算的主要内容是通过AJAX加载的。

在内容中,用户选中的过滤器选项由div元素(过滤器芯片)表示,就像在ebay或其他任何页面中一样。用户可以通过X-ing这样的芯片取消选中过滤器,或者只需单击静态内容上的filter-checkbox。芯片之后还有一个链接,以便一次重置/删除所有过滤器选项。

在过滤芯片部分下,还有另一部分用于对页面上的结果集进行排序。它表示为占据整个宽度的条/梁。

如下所示:

-------------------------------------------- | filter1 filter2 filter3 reset_all_filters | <--- FilterChips section |-------------------------------------------- | sortByA | sortByB | sortByC | sortByD | <--- Sorting section --------------------------------------------

单击reset_all_filters链接会导致重新加载内容。加载后,用户在重置后不会看到FilterChips部分,整个内容都会向上移动。因此,排序部分现在正好位于FilterChips部分之前的位置。

有趣的是,点击的reset_all_filters-link正下方的排序项目在加载内容后会产生悬停效果。

我认为点击指针仍然保留在该位置,并导致下面的元素悬停。

对于那些想知道为什么FilterChips部分或Sorting部分属于加载内容的人: 这确实是我/我们(公司)必须重新考虑的事情。但与此同时,我们必须处理它。

那么对我的问题有什么建议吗?感谢每一位帮助!

1 个答案:

答案 0 :(得分:3)

在2013年1月的一个较老的问题中,有人在Apple的文档中声明这被描述为预期的行为。

https://stackoverflow.com/a/48217487/1503923

这里引用:

  

这似乎是Safari中的预期行为。 Apple的documentation表示单指点击是作为鼠标事件处理的,并显示在点按期间引发的事件。在点击开始时有一个鼠标悬停,但只有当您点击其他内容时才会触发鼠标输出。这意味着Safari假定指针停留在同一个位置,直到下一次点击,这意味着下部元素处于悬停状态是有意义的。

要解决您的问题,您必须在css或特殊的css规则中应用某种媒体查询,这样可以避免为:hover元素设置不同类型的样式。

a:hover { background-color: blue; }

@media only screen 
and (min-device-width : 768px) 
and (max-device-width : 1024px)  {
    a:hover { background-color: transparent; }
}

或某种其他处理方式,以确定您的用户是否有可能出现此问题的ipad或任何其他平板电脑设备。