5

加载 Zurb Foundation 3.1 后,我无法让 jQuery-UI Autocomplete 工作。

有人让他们一起工作或找到另一个与 Foundation 一起工作的自动完成插件吗?

Uncaught TypeError: Object [object Object] has no method 'autocomplete'
(anonymous function) order.js:7
l foundation.min.js:18
c.fireWith foundation.min.js:18
v.extend.ready foundation.min.js:18
A foundation.min.js:18
4

3 回答 3

9

它在该页面中运行良好,但如果您使用 Orbit 或 Reveal 等其他组件,并且您有一个构建在 Foundationn 之上的站点,那么foundation.min.js是必要的。

foundation.min.js包括 Modernizr、jQuery 库、orbit、reveal、工具提示。所以你可以使用foundation.min.js中包含的jQuery库 foundation 3.2包括jQuery 1.8.2)。我将这些导入留在了正文的末尾,然后添加了我需要的内容(用于自动完成和日期选择器的 jQuery ui,然后是脚本),所以它最终是这样的:

<script src="javascripts/foundation.min.js"></script>
<script src="javascripts/app.js"></script>
<script src="http://code.jquery.com/ui/1.9.0/jquery-ui.js"></script>

<script type="text/javascript">
    $(function () {
        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
        });
    });
    $(function () {
        $("#datepicker").datepicker();
    });
</script>

脚本按下一个顺序排列

  1. foundation.min.js它包含 jquery 1.8
  2. foundation.min.js它需要 jquery 库
  3. 它需要 jquery 库和 jquery ui 的自定义脚本
于 2012-10-30T17:25:19.283 回答
3

与使用 jquery 的 Foundation 框架的库存在冲突。为了将 jQuery UI 与 Foundation Zurb Framework 一起使用,您需要删除代码末尾的两个导入:

Foundation.min.js 和 javascripts/app.js

您可以在我的示例代码中看到它正在工作(您必须包含基础资源才能看到它工作(foundation.min.css、app.css 和modernizr.foundation.js)

 <!DOCTYPE html>

<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]>    <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]>    <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
<meta charset="utf-8" />    
<!-- Set the viewport width to device width for mobile -->
<meta name="viewport" content="width=device-width" />   
<title>jQuery UI Autocomplete - Default functionality</title>   
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.0/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.8.2.js"></script>
<script src="http://code.jquery.com/ui/1.9.0/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css" />     
<!-- Included CSS Files (Compressed) -->
<link rel="stylesheet" href="stylesheets/foundation.min.css">
<link rel="stylesheet" href="stylesheets/app.css">
<script src="javascripts/modernizr.foundation.js"></script>
<!-- IE Fix for HTML5 Tags -->
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

    <script>
    $(function() {
        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
        });
    });
    $(function() {
        $( "#datepicker" ).datepicker();
    });
    </script>
    </script>
</head>
<body>
    <br>
    <br>
    <div class="row">
        <div class="four columns">      
            <label for="tags">Programing Language: </label>
            <input type="text" id="tags" placeholder="Language"/>
        </div>
        <div class="four columns">
            <label for="city">Name: </label>
            <input type="text" id="city" placeholder="State" />
        </div>
        <div class="four columns">
            <label for="tags">Date: </label>
            <input type="text" id="datepicker" placeholder="dd/mm/yyyy"/>
        </div>
    </div>  


</body>
</html>
于 2012-10-25T09:10:55.097 回答
2

我在foundation.min.jsjQuery UI上遇到了同样的问题。

然后我阅读了@snekkke 的答案并尝试了它。
它适用于某些 UI 功能,但不适用于所有功能(这可能是因为jQuery UIjQuery(与Foundation.min.js捆绑)不能很好地协同工作)。

所以我从foundation.min.js中删除了jQuery代码,并为jQuery添加了Google CDN ..Order was..

  1. jQuery
  2. 基础.min.js
  3. jQuery 用户界面

现在它对我来说工作正常......

于 2012-12-28T21:42:27.743 回答