首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在标头标记中不工作的href链接。

在标头标记中不工作的href链接。
EN

Stack Overflow用户
提问于 2016-01-05 19:36:36
回答 1查看 1.1K关注 0票数 0

我正在用Struts2链接创建一个标头,但是在输入Struts2 a href链接时遇到了一个非常奇怪的问题,在标题中输入的是遇到语法错误: jquery中未识别的表达式错误。但是,如果我不放置标题标签,我输入的链接将正常工作。有人面对这个问题吗?我正在使用jQuery1.11。

代码语言:javascript
运行
复制
<%@ page language="java" contentType="text/html;" %>
  <%@ taglib prefix="s" uri="/struts-tags" %>
    <!-- this part the link would work -->
    <div class="container">
      <nav class="pull-left">
        <ul class="list-unstyled">
          <li class="animated wow fadeInLeft" data-wow-delay="0s">Inventory</li>
          <li class="animated wow fadeInLeft">
            <s:url namespace="/sales" action="saleshome" var="aURL2" />
            <s:a href="%{aURL2}">Test</s:a>
          </li>
          <li class="animated wow fadeInLeft" data-wow-delay=".2s">Purchase</li>
          <li class="animated wow fadeInLeft" data-wow-delay=".3s">Bank</li>
          <li class="animated wow fadeInLeft" data-wow-delay=".4s">Job</li>
          <li class="animated wow fadeInLeft" data-wow-delay=".5s">Login</li>
          <li class="animated wow fadeInLeft" data-wow-delay=".5s">
            <s:a namespace="/company" action="newcompany"><s:text name="label.newcompany" /></s:a>
          </li>
          <li class="animated wow fadeInLeft" data-wow-delay=".5s">
            <s:a namespace="/company" action="newuser"><s:text name="label.newuser" /></s:a>
          </li>
        </ul>
      </nav>
    </div>
    <!-- this part the link would not work -->
    <header>
      <div class="container">
        <nav class="pull-left">
          <ul class="list-unstyled">
            <li class="animated wow fadeInLeft" data-wow-delay="0s">Inventory</li>
            <li class="animated wow fadeInLeft">
              <s:url namespace="/sales" action="saleshome" var="aURL2" />
              <s:a href="%{aURL2}">Test</s:a>
            </li>
            <li class="animated wow fadeInLeft" data-wow-delay=".2s">Purchase</li>
            <li class="animated wow fadeInLeft" data-wow-delay=".3s">Bank</li>
            <li class="animated wow fadeInLeft" data-wow-delay=".4s">Job</li>
            <li class="animated wow fadeInLeft" data-wow-delay=".5s">Login</li>
            <li class="animated wow fadeInLeft" data-wow-delay=".5s">
              <s:a namespace="/company" action="newcompany"><s:text name="label.newcompany" /></s:a>
            </li>
            <li class="animated wow fadeInLeft" data-wow-delay=".5s">
              <s:a namespace="/company" action="newuser"><s:text name="label.newuser" /></s:a>
            </li>
          </ul>
        </nav>
      </div>
    </header>

我遇到以下错误。

我认为以下可能是其原因。var节= $(this).attr('href');似乎链接的代码部分引起了问题。

代码语言:javascript
运行
复制
$(document).ready(function(){

    //Navigation menu scrollTo
    $('header nav ul li a').click(function(event){
        event.preventDefault();
        var section = $(this).attr('href');
        var section_pos = $(section).position();

        if(section_pos){
            $(window).scrollTo({top:section_pos.top, left:'0px'}, 1000);
        }

    });

    $('.app_link').click(function(e){
        event.preventDefault();
        $(window).scrollTo({top:$("#hero").position().top, left:'0px'}, 1000);      
    });

    //Show & Hide menu on mobile
    $('.burger_icon').click(function(){
        $('header nav').toggleClass('show');
        $('header .burger_icon').toggleClass('active');
    });

    //wow.js on scroll animations initialization
    wow = new WOW(
        {
          animateClass: 'animated',
          mobile: false,
          offset: 50
        }
    );
    wow.init();

    //parallax effect initialization
    $('.hero').parallax("50%", 0.3);

    //Nice scroll initialization
    $("html").niceScroll({
        scrollspeed: 50,
        autohidemode : false,
        cursorwidth : 8,
        cursorborderradius: 8,
        cursorborder : "0",
        background : "rgba(48, 48, 48, .4)",
        cursorcolor : '#1f1f1f',
        zindex : 999
    });

    //Testimonials slider initialization
    $("#tslider").owlCarousel({
        items : 1,
        navigation : true,
        pagination : false,
        slideSpeed : 300,
        paginationSpeed : 400,
        singleItem: true,
        responsive: true,
        autoPlay : true,
        transitionStyle : "fade"
    });

    //Mailchimp subscription form initialization
    $('#submit_form').submit(function(){
        $('#mc_submit').attr('disabled', 'disabled');       
        processing('icon', 'loading');
    });

    if($('#submit_form').length){
        //Mailchim Subscription form
        $('#submit_form').ajaxChimp({
            callback: chimpResponce
        });
    }   

    //Mail chimp callback function
    function chimpResponce(resp) {
        if (resp.result === 'success') {            
            processing('loading', 'icon');
            $('#mc_submit').removeAttr('disabled', 'disabled');
            $('#submit_form #mc-email').val('');
            $('#error_msg').hide();
            $('#success_msg').show();
        }else{      
            processing('loading', 'icon');
            $('#success_msg').hide();
            $('#error_msg').show();
            $('#mc_submit').removeAttr('disabled', 'disabled');
        }
    }

    function processing(hide, show){
            $('#mc_submit i').removeClass(hide).addClass(show);
    }

    //Popup video
    $('#play_video').click(function(e){
        e.preventDefault(); 

        var video_link = $(this).data('video');
        video_link = '<iframe src="' + video_link + '" width="500" height="208" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>';

        $('.about_video').append(video_link).fadeIn(200);
    });

    $('.close_video').click(function(e){
        e.preventDefault(); 

        $('.about_video').fadeOut(200,function(){
            $('iframe', this).remove();
        });

    });

});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-06 14:28:45

错误描述非常具有解释性: jQuery不能使用表达式/easyaccount/sales/saleshome作为$(...)中的选择器。

您正在使用scrollTo滚动到区段。而且似乎沿着锚链接(href="#somewhere"),您也有完整的url链接。很明显,普通urls不能作为jQuery选择器使用,因此您必须在事件处理程序中筛选链接。

代码语言:javascript
运行
复制
$('header nav ul li a').click(function(event){

    var section = $(this).attr('href');

    if (section[0] !== "#") return; // drop the link if the first char is not #

    var section_pos = $(section).position();

    if(section_pos){
        $(window).scrollTo({top:section_pos.top, left:'0px'}, 1000);
    }

    event.preventDefault();

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

https://stackoverflow.com/questions/34619868

复制
相关文章

相似问题

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