首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >this.href不返回href

this.href不返回href
EN

Stack Overflow用户
提问于 2013-07-30 22:19:50
回答 5查看 5.4K关注 0票数 3

我不确定这是否是因为我在使用Wordpress,但是this.href没有返回包含它们的条目的href (例如,在"contact“上,它返回http://www.domain.net/undefined而不是http://www.domain.net/contact)。如果我删除脚本,导航器就会加载href。

这是JS

代码语言:javascript
复制
$(document).ready(function() {
      $('#page-wrap').delay(500).fadeIn(1000);

      $(".menu-item").click(function(event){
        event.preventDefault();
        linkLocation = this.href;
        $("#page-wrap").fadeOut(1000, redirectPage);        
    });

    function redirectPage() {
        window.location = linkLocation;
    }
});

以下是php wordpress文件

代码语言:javascript
复制
<div id="nav_wrap">
        <div id="nav"><?php wp_nav_menu( array( 'theme_location' => 'header-menu',) ); ?></div>
    </div>

下面是wordpress以html格式返回的内容

代码语言:javascript
复制
<div id="nav_wrap">
        <div id="nav"><div class="menu-main-container"><ul id="menu-main" class="menu"><li id="menu-item-13" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-13"><a href="http://www.domain.net">Home</a></li>
<li id="menu-item-28" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-28"><a>Company</a>
<ul class="sub-menu">
    <li id="menu-item-32" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-32"><a href="http://www.domain.net/jobs/">Careers</a></li>
</ul>
</li>
<li id="menu-item-29" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-29"><a>Portfolio</a>
<ul class="sub-menu">
    <li id="menu-item-65" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-65"><a href="http://www.domain.net/breweries/">Breweries</a></li>
</ul>
</li>
<li id="menu-item-30" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-30"><a>Retailer Resources</a></li>
<li id="menu-item-31" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-31"><a>Community</a></li>
<li id="menu-item-15" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15"><a href="http://www.domain.net/contact/">Contact</a></li>
</ul></div></div>
    </div>
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-07-30 22:23:07

这是因为您正在.menu-item上运行选择器,这是一个<li>。它没有href属性。

您需要在您的<a>标记中选择<li>标记。这应该可以做到:

代码语言:javascript
复制
$(".menu-item a").click(function(event){
    event.preventDefault();
    linkLocation = this.href;
    $("#page-wrap").fadeOut(1000, redirectPage);        
});

与选择<li> (然后选择子<a> )的其他答案相比,这样做的好处是,只有当用户单击实际链接时才能运行。当单击<li>中的任何位置时,其他链接将运行,这取决于您的CSS,可能在实际链接空间之外。

带有工作示例的jsFiddle

票数 2
EN

Stack Overflow用户

发布于 2013-07-30 22:22:44

Menu item不会返回href,因为它是一个<li/>

您需要针对菜单项的<a>子元素。

linkLocation = $(this).children('a').attr('href');

票数 1
EN

Stack Overflow用户

发布于 2013-07-30 22:22:12

linkLocation = this.href;更改为linkLocation = $(this).attr('href');,如果不起作用,请尝试linkLocation = $(this).find('a').attr('href');

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

https://stackoverflow.com/questions/17958468

复制
相关文章

相似问题

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