【问题标题】:Uncaught TypeError implementing Fuelux wizard未捕获的 TypeError 实现 Fuelux 向导
【发布时间】:2013-04-09 10:56:35
【问题描述】:

我正在尝试实现 Fuelux 的向导功能,但遇到了障碍。我只是想实现live example 的工作副本,但在我的控制台中不断收到错误:

Uncaught TypeError: Object [object Object] has no method 'wizard'

我发现很多文档有点让人不知所措,希望能用简单 [或更简单] 的英语清楚地说明这个主题。

我的标记是:

<!DOCTYPE html>
<html class="no-js fuelux">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>E-Learning</title>
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <link rel="stylesheet" href="css/fuelux.min.css">
    <link rel="stylesheet" href="css/main.css">
</head>
<body>
    <div class="container">
        <div id="my-wizard" class="wizard">
            <ul class="steps">
                <li data-target="#step1" class="active"><span class="badge badge-info">1</span>Step 1<span class="chevron"></span></li>
                <li data-target="#step2"><span class="badge">2</span>Step 2<span class="chevron"></span></li>
                <li data-target="#step3"><span class="badge">3</span>Step 3<span class="chevron"></span></li>
                <li data-target="#step4"><span class="badge">4</span>Step 4<span class="chevron"></span></li>
                <li data-target="#step5"><span class="badge">5</span>Step 5<span class="chevron"></span></li>
            </ul>
            <div class="actions">
                <button class="btn btn-mini btn-prev"> <i class="icon-arrow-left"></i>Prev</button>
                <button class="btn btn-mini btn-next" data-last="Finish">Next<i class="icon-arrow-right"></i></button>
            </div>
        </div>
        <div class="step-content">
            <div class="step-pane active" id="step1">
                ...
            </div>
            <div class="step-pane" id="step2">
                ...
            </div>
            <div class="step-pane" id="step3">
                ...
            </div>
        </div>
    </div>
    <script src="js/vendor/jquery-1.9.1.min.js"></script>
    <script src="js/bootstrap.js"></script>
    <script src="js/require.js"></script>
    <script src="js/wizard.js"></script>
    <script>
        $(document).ready(function(){

            $('#my-wizard').on('change', function(e, data) {
                console.log('change');
                if(data.step===3 && data.direction==='next') {
                    // return e.preventDefault();
                }
            });

            $('#my-wizard').on('changed', function(e, data) {
                console.log('changed');
            });

            $('#my-wizard').on('finished', function(e, data) {
                console.log('finished');
            });

            $('.btn-prev').on('click', function() {
                console.log('prev');
                $('#my-wizard').wizard('previous');
            });

            $('.btn-next').on('click', function() {
                console.log('next');
                $('#my-wizard').wizard('next','foo');
            });
        });
    </script>
</body>
</html>

【问题讨论】:

  • 根据标题,这意味着您要么没有添加所需的wizard.js 文件,要么试图在加载wizard.js 之前调用wizard。我想我有点困惑,因为我假设您需要在父元素上调用 .wizard 才能让它出现,对吗?这就是你的全部代码吗?
  • 你包含 require.js 但不使用它?
  • @Snuffleupagus:根据他给我们的代码,情况并非如此。而是加载或执行失败。
  • @Bergi 如果其他地方的脚本有错误,控制台会显示这样的错误
  • 我根据其他示例包含了 require.js... 直到收到错误消息,指出某些内容未定义...。这就是所有代码,是的。

标签: javascript jquery twitter-bootstrap fuelux


【解决方案1】:

如此接近!对于 CSS 和 JS,因为 Fuel UX 包含 Bootstrap,您只需包含 Fuel UX 来代替 Boostrap,您就可以获得所有 Bootstrap 和 Fuel UX:

<link rel="stylesheet" href="https://fuelcdn.com/fuelux/2.3/css/fuelux.min.css">
<script src="https://fuelcdn.com/fuelux/2.3/loader.min.js"></script>

您的模板看起来很棒,并且仅进行了上述修改,加上删除了导致双重处理的几行,这可以按预期工作。在此处查看完整示例:

要点:https://gist.github.com/adamalex/5412079

现场示例:http://bl.ocks.org/adamalex/5412079

【讨论】:

  • @Adam... 先生,您极大地救了我。我遇到了您的实时示例无法加载某些远程资源的问题,但是当我将引用重定向到本地副本时,它很有魅力。如果我可以要求您扩展一下您的回答... loader.min.js 是做什么用的?为什么不需要包含wizard.js?再次感谢,在尝试理解这些内容以提供一个工作示例时很有帮助......再次感谢。
  • 当然,loader.min.js 包含来自 Bootstrap 和 Fuel UX 的所有 JavaScript(包括向导和所有其他控件),以及一个最小的 AMD 加载程序(Almond),它可以加载所有内容,而无需您提供你自己的加载器,比如 RequireJS。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-09
  • 2014-08-07
  • 2014-05-22
  • 1970-01-01
相关资源
最近更新 更多