0

我查看了所有关于未捕获错误的类似帖子:$ 未定义并且没有任何帮助。我有最新的 jquery 库,只是不明白为什么会出现这个错误。

$(function() {

    // Checking for CSS 3D transformation support
    $.support.css3d = supportsCSS3D();

    var formContainer = $('#formContainer');

    $('.flipLink').click(function(e){

        // Flipping the forms
        formContainer.toggleClass('flipped');

        if(!$.support.css3d){
            $('#login').toggle();
        }
        e.preventDefault();
    });

    formContainer.find('form').submit(function(e){

        e.preventDefault();
    });

    function supportsCSS3D() {
        var props = [
            'perspectiveProperty', 'WebkitPerspective', 'MozPerspective'
        ], testDom = document.createElement('a');

        for(var i=0; i<props.length; i++){
            if(props[i] in testDom.style){
                return true;
            }
        }

        return false;
    }
});

我在这里将脚本称为 scripts.js

<head>
        <script type="text/javascript" src="js/scripts.js"></script>
        <script type="text/javascript" src="js/jquery.js"></script>
        <script type="text/javascript" src="js/jquery-ui.js"></script>
        <link rel = "stylesheet" href= "css/styles.css">


    </head>

我非常感谢获得知识以了解为什么会在这种情况下发生这种情况以及任何提示。

4

3 回答 3

3

在 jQuery之后包含您的脚本,而不是之前。

    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript" src="js/jquery-ui.js"></script>
    <script type="text/javascript" src="js/scripts.js"></script>

浏览器在加载标签内容后立即以增量方式评估<script>它们。如果你把你的放在第一位,浏览器会在解析后续脚本之前尝试运行它。因此,您的脚本的依赖关系将不会得到满足,您会收到类似的错误。

于 2012-10-18T22:34:55.760 回答
3

您应该在 jquery 脚本之后加载您的 scripts.js:

<head>
    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript" src="js/jquery-ui.js"></script>
    <script type="text/javascript" src="js/scripts.js"></script>
    <link rel = "stylesheet" href= "css/styles.css">
</head>
于 2012-10-18T22:35:07.113 回答
0

尝试将 jquery 的脚本标签移动到您的 scripts.js 上方,以便定义 $。

于 2012-10-18T22:39:16.663 回答