首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery选择器性能: Safari

问jQuery选择器性能: Safari
EN

Stack Overflow用户
提问于 2018-07-28 07:30:38
回答 1查看 41关注 0票数 1

我正在构建一个菜单页面,如果用户单击任何不是菜单链接的东西,她/他就会被带回主页。这是页面:http://newsite.paulwagenblast.com/design/

div ID包装器的样式为:

<div id="wrapper" style="height: 100vh; position: fixed; top: 0; left: 0; margin: 0 auto; width: 100vw; z-index:-1;" class="hfeed">

本质上,包装器覆盖了整个页面,如果用户单击了页面中心的菜单链接以外的任何内容,我希望用户被送回主页。以下是链接的HTML:

<header class="header"> ... stuff ... <li class="menu-cloud xlarge"><a href="http://newsite.paulwagenblast.com/sample-design-page-2/">Sample Design Page 2</a></li> ... stuff ... </header>

我写的jQuery是:

代码语言:javascript
复制
jQuery(' div#wrapper:not("header") ').click(function() {
    window.location.assign("http://newsite.paulwagenblast.com/")
});

这段代码,以及其他许多选择器变体,在Firefox和Chrome上运行得很好,但在Safari上,任何点击的东西都会把用户带回主页,包括应该带你到项目页面的链接。

我相信这是因为包装器的大小可以覆盖整个页面。包装器是固定位置的,具有z-index -1,菜单项是相对定位的,z-index为1,以尝试将它们放在包装器的前面。我相信由于定位的原因,包装器总是在顶部,因为它是固定定位的。但是,即使我相对定位包装器,并将其z-index保留为-1,这也不能解决Safari中的问题。所以,我不确定这是jQuery还是Safari中的定位问题。

有没有人可以建议一下,这样当点击菜单链接时,用户不会转到这个页面:Home page

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-28 07:53:41

试一试

代码语言:javascript
复制
jQuery('div#wrapper').click(function(e) {
    if (jQuery(e.target).is(':not("header, header *")'))
       window.location.assign("http://newsite.paulwagenblast.com/")
});

如果单击的元素本身或其后代不是header,它将更改位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51566701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档