0

我发现了一个与我的问题类似的问题,但答案对我不起作用。我有一个在网上找到的与 JQuery 一起使用的导航。

我将导航执行脚本放在一个外部文件中并链接它,但现在它不起作用。有人可以解释为什么它不起作用吗?我还尝试了 $(document).ready( 也不起作用的函数。

我把对文件的引用放在头上

我已经更新了我的 Javascript,这也不起作用

    $(document).ready(function() {
        $(function() {
            $('#hn_menu > li').bind('mouseenter',function(){
        var $elem = $(this);
            $elem.find('img')
       .stop(true)
       .animate({
       //'width':'170px',
       'width':'120px',
       //'height':'170px',
       'height':'120px',
       'left':'0px'
    },400,'easeOutBack')
    .andSelf()
    .find('.hn_wrap')
    blah blah blah
        });
    });

这是整个文档..我需要将这个混乱转换为外部文件脚本

    <html>
<head>
    <title>Slide Down Box Menu with jQuery and CSS3</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <meta name="description" content="Slide Down Box Menu with jQuery and CSS3" />
    <meta name="keywords" content="jquery, css3, sliding, box, menu, cube, navigation, portfolio, thumbnails"/>
    <link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"/>
    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen"/>
    <style>
        body{
            background:#333 url(bg.jpg) repeat top left;
            font-family:Arial;
        }
        span.reference{
            position:fixed;
            left:10px;
            bottom:10px;
            font-size:12px;
        }
        span.reference a{
            color:#aaa;
            text-transform:uppercase;
            text-decoration:none;
            text-shadow:1px 1px 1px #000;
            margin-right:30px;
        }
        span.reference a:hover{
            color:#ddd;
        }
        ul.sdt_menu{
            margin-top:150px;
        }
        h1.title{
            text-indent:-9000px;
            background:transparent url(title.png) no-repeat top left;
            width:633px;
            height:69px;
        }
    </style>
    <script type="text/javascript" src="testexec.js"></script>
     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript" src="jquery.easing.1.3.js"></script>
</head>

<body>
    <div class="content">
        <h1 class="title">Slide Down Box Menu with jQuery and CSS3</h1>
        <ul id="sdt_menu" class="sdt_menu">
            <li>
                <a href="#">
                    <img src="images/2.jpg" alt=""/>
                    <span class="sdt_active"></span>
                    <span class="sdt_wrap">
                        <span class="sdt_link">About me</span>
                        <span class="sdt_descr">Get to know me</span>
                    </span>
                </a>
            </li>
            <li>
                <a href="#">
                    <img src="images/1.jpg" alt=""/>
                    <span class="sdt_active"></span>
                    <span class="sdt_wrap">
                        <span class="sdt_link">Portfolio</span>
                        <span class="sdt_descr">My work</span>
                    </span>
                </a>
                <div class="sdt_box">
                        <a href="#">Websites</a>
                        <a href="#">Illustrations</a>
                        <a href="#">Photography</a>
                </div>
            </li>
            <li>
                <a href="#">
                    <img src="images/3.jpg" alt=""/>
                    <span class="sdt_active"></span>
                    <span class="sdt_wrap">
                        <span class="sdt_link">Inspiration</span>
                        <span class="sdt_descr">Where ideas get born</span>
                    </span>
                </a>
            </li>
            <li>
                <a href="#">
                    <img src="images/4.jpg" alt=""/>
                    <span class="sdt_active"></span>
                    <span class="sdt_wrap">
                        <span class="sdt_link">Photos</span>
                        <span class="sdt_descr">I like to photograph</span>
                    </span>
                </a>
            </li>
            <li>
                <a href="#">
                    <img src="images/5.jpg" alt=""/>
                    <span class="sdt_active"></span>
                    <span class="sdt_wrap">
                        <span class="sdt_link">Blog</span>
                        <span class="sdt_descr">I write about design</span>
                    </span>
                </a>
            </li>
            <li>
                <a href="#">
                    <img src="images/6.jpg" alt=""/>
                    <span class="sdt_active"></span>
                    <span class="sdt_wrap">
                        <span class="sdt_link">Projects</span>
                        <span class="sdt_descr">I like to code</span>
                    </span>
                </a>
                <div class="sdt_box">
                    <a href="#">Job Board Website</a>
                    <a href="#">Shopping Cart</a>
                    <a href="#">Interactive Maps</a>
                </div>
            </li>
        </ul>
    </div>
    <div>
        <span class="reference">

更多脚本和 css 样式:www.htmldrive.net

    <!-- The JavaScript -->
   <!-- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript" src="jquery.easing.1.3.js"></script>-->
    <script type="text/javascript">
        $(function() {
            /**
            * for each menu element, on mouseenter, 
            * we enlarge the image, and show both sdt_active span and 
            * sdt_wrap span. If the element has a sub menu (sdt_box),
            * then we slide it - if the element is the last one in the menu
            * we slide it to the left, otherwise to the right
            */
            $('#sdt_menu > li').bind('mouseenter',function(){
                var $elem = $(this);
                $elem.find('img')
                     .stop(true)
                     .animate({
                        'width':'170px',
                        'height':'170px',
                        'left':'0px'
                     },400,'easeOutBack')
                     .andSelf()
                     .find('.sdt_wrap')
                     .stop(true)
                     .animate({'top':'140px'},500,'easeOutBack')
                     .andSelf()
                     .find('.sdt_active')
                     .stop(true)
                     .animate({'height':'170px'},300,function(){
                    var $sub_menu = $elem.find('.sdt_box');
                    if($sub_menu.length){
                        var left = '170px';
                        if($elem.parent().children().length == $elem.index()+1)
                            left = '-170px';
                        $sub_menu.show().animate({'left':left},200);
                    }   
                });
            }).bind('mouseleave',function(){
                var $elem = $(this);
                var $sub_menu = $elem.find('.sdt_box');
                if($sub_menu.length)
                    $sub_menu.hide().css('left','0px');

                $elem.find('.sdt_active')
                     .stop(true)
                     .animate({'height':'0px'},300)
                     .andSelf().find('img')
                     .stop(true)
                     .animate({
                        'width':'0px',
                        'height':'0px',
                        'left':'85px'},400)
                     .andSelf()
                     .find('.sdt_wrap')
                     .stop(true)
                     .animate({'top':'25px'},500);
            });
        });
    </script>
</body>
4

1 回答 1

0

有几件事可能是问题所在。以下是要遵循的基本准则:

像这样在标签中写下<script>链接:<head>

<head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
    <script src="/your-root-folder/your-script.js"></script>
</head>

然后,在 中your-script.js,您需要将函数包装在 $(document).ready(function(){...}

$(document).ready(function(){
    //call the function here
});

编辑

您的问题是您链接脚本文件的顺序。jQuery 链接和 Easing 链接需要出现在您的脚本之前。请注意,我给出的示例中your-script.js是 after jquery.min.js

复制并替换所有内容:

的HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
    <head>
        <title>Slide Down Box Menu with jQuery and CSS3</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <meta name="description" content="Slide Down Box Menu with jQuery and CSS3" />
        <meta name="keywords" content="jquery, css3, sliding, box, menu, cube, navigation, portfolio, thumbnails"/>
    <link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"/>
    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen"/>
    <style>
        body{
            background:#333 url(bg.jpg) repeat top left;
            font-family:Arial;
        }
        span.reference{
            position:fixed;
            left:10px;
            bottom:10px;
            font-size:12px;
        }
        span.reference a{
            color:#aaa;
            text-transform:uppercase;
            text-decoration:none;
            text-shadow:1px 1px 1px #000;
            margin-right:30px;
        }
        span.reference a:hover{
            color:#ddd;
        }
        ul.sdt_menu{
            margin-top:150px;
        }
        h1.title{
            text-indent:-9000px;
            background:transparent url(title.png) no-repeat top left;
            width:633px;
            height:69px;
        }
    </style>
    <!-- The JavaScript -->
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript" src="jquery.easing.1.3.js"></script>
    <script type="text/javascript" src="test.js"></script>
</head>

<body>
    <div class="content">
        <h1 class="title">Slide Down Box Menu with jQuery and CSS3</h1>
        <ul id="sdt_menu" class="sdt_menu">
            <li>
                <a href="#">
                    <img src="images/2.jpg" alt=""/>
                    <span class="sdt_active"></span>
                    <span class="sdt_wrap">
                        <span class="sdt_link">About me</span>
                        <span class="sdt_descr">Get to know me</span>
                    </span>
                </a>
            </li>
            <li>
                <a href="#">
                    <img src="images/1.jpg" alt=""/>
                    <span class="sdt_active"></span>
                    <span class="sdt_wrap">
                        <span class="sdt_link">Portfolio</span>
                        <span class="sdt_descr">My work</span>
                    </span>
                </a>
                <div class="sdt_box">
                        <a href="#">Websites</a>
                        <a href="#">Illustrations</a>
                        <a href="#">Photography</a>
                </div>
            </li>
            <li>
                <a href="#">
                    <img src="images/3.jpg" alt=""/>
                    <span class="sdt_active"></span>
                    <span class="sdt_wrap">
                        <span class="sdt_link">Inspiration</span>
                        <span class="sdt_descr">Where ideas get born</span>
                    </span>
                </a>
            </li>
            <li>
                <a href="#">
                    <img src="images/4.jpg" alt=""/>
                    <span class="sdt_active"></span>
                    <span class="sdt_wrap">
                        <span class="sdt_link">Photos</span>
                        <span class="sdt_descr">I like to photograph</span>
                    </span>
                </a>
            </li>
            <li>
                <a href="#">
                    <img src="images/5.jpg" alt=""/>
                    <span class="sdt_active"></span>
                    <span class="sdt_wrap">
                        <span class="sdt_link">Blog</span>
                        <span class="sdt_descr">I write about design</span>
                    </span>
                </a>
            </li>
            <li>
                <a href="#">
                    <img src="images/6.jpg" alt=""/>
                    <span class="sdt_active"></span>
                    <span class="sdt_wrap">
                        <span class="sdt_link">Projects</span>
                        <span class="sdt_descr">I like to code</span>
                    </span>
                </a>
                <div class="sdt_box">
                    <a href="#">Job Board Website</a>
                    <a href="#">Shopping Cart</a>
                    <a href="#">Interactive Maps</a>
                </div>
            </li>
        </ul>
    </div>
    <div>
            <span class="reference">More script and css style: <a href="http://www.htmldrive.net/" title="HTML DRIVE - Free DHMTL Scripts,Jquery plugins,Javascript,CSS,CSS3,Html5 Library">www.htmldrive.net</a>               
            </span>
        </div>
    </body>
</html>

我命名的外部javascript test.js

// JavaScript Document
$(function() {
            /**
            * for each menu element, on mouseenter, 
            * we enlarge the image, and show both sdt_active span and 
            * sdt_wrap span. If the element has a sub menu (sdt_box),
            * then we slide it - if the element is the last one in the menu
            * we slide it to the left, otherwise to the right
            */
            $('#sdt_menu > li').bind('mouseenter',function(){
                var $elem = $(this);
                $elem.find('img')
                     .stop(true)
                     .animate({
                        'width':'170px',
                        'height':'170px',
                        'left':'0px'
                     },400,'easeOutBack')
                     .andSelf()
                     .find('.sdt_wrap')
                     .stop(true)
                     .animate({'top':'140px'},500,'easeOutBack')
                     .andSelf()
                     .find('.sdt_active')
                     .stop(true)
                     .animate({'height':'170px'},300,function(){
                    var $sub_menu = $elem.find('.sdt_box');
                    if($sub_menu.length){
                        var left = '170px';
                        if($elem.parent().children().length == $elem.index()+1)
                            left = '-170px';
                        $sub_menu.show().animate({'left':left},200);
                    }   
                });
            }).bind('mouseleave',function(){
                var $elem = $(this);
                var $sub_menu = $elem.find('.sdt_box');
                if($sub_menu.length)
                    $sub_menu.hide().css('left','0px');

                $elem.find('.sdt_active')
                     .stop(true)
                     .animate({'height':'0px'},300)
                     .andSelf().find('img')
                     .stop(true)
                     .animate({
                        'width':'0px',
                        'height':'0px',
                        'left':'85px'},400)
                     .andSelf()
                     .find('.sdt_wrap')
                     .stop(true)
                     .animate({'top':'25px'},500);
            });
        });
于 2013-03-29T18:33:09.383 回答