Javascript:未捕获类型错误自动填充不是函数

时间:2015-07-14 11:13:37

标签: javascript php jquery jquery-ui autocomplete

我知道这个问题已经发布了很多,因为我一直在试图找到解决方案的每个答案,但它对我的代码没有用。

我试图在我的搜索栏上使用jquery-ui调用自动完成功能,但每次加载页面时都会出现类型错误,说自动完成不是一个函数。

我已删除了加载javascript ui的每个实例,并将其放在我的javascript文件夹中的一个单独的文件中,名为" jquery-ui-src.php",看起来像这样

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>

然后在需要使用jquery-ui的文件中调用。我认为错误被捕获的文件位于我的&#34; header.php&#34;充当整个网站标题的文件

<?php
    session_start();
    include("assets/js/jquery-ui-src.php");
 ?> 
<header id="header" class="website-header">

//other code included here

//code for the search bar

<form role="search" action="<?php echo SITE_URL; ?>search" method="GET" style="width: 12em; margin: 0.1em 2em;margin-left:7em">
    <div class="input-group">
        <input type="text" id="tags" class="search-field form-control">
        <div class="input-group-btn">
            <button type="submit" class="btn btn-default">Search</button>
        </div>
    </div>
</form>
</div>

//other code included here




<script>
$(document).ready(function(){
    $("#account-dropdown").click(function(){
        $("#account-box").slideToggle(400);
        $(this).css("color", "white");
        return false;
    });                         
    var availableTags = [
        "ActionScript",
        "AppleScript",
        "Asp",
        "BASIC",
        "C",
        "C++",
        "Clojure",
        "COBOL",
        "ColdFusion",
        "Erlang",
        "Fortran",
        "Groovy",
        "Haskell",
        "Java",
        "JavaScript",
        "Lisp",
        "Perl",
        "PHP",
        "Python",
        "Ruby",
        "Scala",
        "Scheme"
    ];

    $("#tags").autocomplete({
        source: availableTags
    });

});
</script>
</header>

每当页面加载时,我都会收到错误消息,说自动完成功能不是一个功能,我真的无法弄清楚它为什么会这样做。

感谢任何帮助。

修改

我已经删除了调用jquery脚本的头文件中的第二个实例,但我仍然收到错误。

其他信息可能在这里有用,但我不是那个制作初始文件的人,而且我已经获得了一些改进它的任务,一个是让搜索栏使用它知道这个项目中有多个(实际上很多)文件可能很有用。如果我将所有这些脚本移动到我的&#34; jquery-ui-src.php&#34;中,很多这些脚本也会调用不同的脚本。文件?这有可能解决错误吗?

1 个答案:

答案 0 :(得分:0)

因为您要在中间导入另一个jQuery,因此您使用jquery-ui-src.php导入的所有内容都已重置。

请尝试删除此行:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>

结尾标记无效:</div>//other code included here.删除它。

以下是工作代码。这是fiddle

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>

<header id="header" class="website-header">
    <form role="search" action="" method="GET" style="width: 12em; margin: 0.1em 2em;margin-left:7em">
        <div class="input-group">
            <input type="text" id="tags" class="search-field form-control" />
            <div class="input-group-btn">
                <button type="submit" class="btn btn-default">Search</button>
            </div>
        </div>
    </form>
    <script>
        $(document).ready(function() {
            $("#account-dropdown").click(function() {
                $("#account-box").slideToggle(400);
                $(this).css("color", "white");
                return false;
            });
            var availableTags = [
                "ActionScript",
                "AppleScript",
                "Asp",
                "BASIC",
                "C",
                "C++",
                "Clojure",
                "COBOL",
                "ColdFusion",
                "Erlang",
                "Fortran",
                "Groovy",
                "Haskell",
                "Java",
                "JavaScript",
                "Lisp",
                "Perl",
                "PHP",
                "Python",
                "Ruby",
                "Scala",
                "Scheme"];

            $("#tags").autocomplete({
                source: availableTags
            });

        });
    </script>
</header>