javascript - 主干 View 点击 Hello World

标签 javascript backbone.js

我正在尝试使用 Backbone 做一个非常简单的 hello world。阅读文档和示例后,我认为这应该可行,但在我单击时不执行任何操作:

<!DOCTYPE html>
<html>
  <head>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
    <script type="text/javascript" src="http://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.4/underscore-min.js"></script>
    <script type="text/javascript" src="http://ajax.cdnjs.com/ajax/libs/backbone.js/0.3.3/backbone-min.js"></script>
    <script type="text/javascript">
      var AppView = Backbone.View.extend({

          events: {
              'click #new': 'createNew'
          },

          //CREATE
          createNew: function(){
              alert('yea');
          }

      });

      var app_view = new AppView();
    </script>
  </head>
  <body>

    <a href="#new" id="new">new</a>
  </body>
</html>

我错过了什么吗?有什么问题吗?

最佳答案

这里有两个问题:

  1. 主干 View 与特定的 DOM 元素相关联。您必须先将 View 附加到 DOM,然后它才能响应事件。
  2. 当您的脚本执行时,DOM 可能尚未就绪,您必须使用 $(document).ready 包装 View 创建代码。
<!DOCTYPE html>
<html>
  <head>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
    <script type="text/javascript" src="http://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.4/underscore-min.js"></script>
    <script type="text/javascript" src="http://ajax.cdnjs.com/ajax/libs/backbone.js/0.3.3/backbone-min.js"></script>
    <script type="text/javascript">
      var AppView = Backbone.View.extend({

          events: {
              // the element IS the link, you don't have to specify its id there
              'click': 'createNew'
          },

          //CREATE
          createNew: function(){
              alert('yea');
          }

      });

      $(document).ready(function() {
        // attach the view to the existing a element
        var app_view = new AppView({
          el: '#new'
        });
      });
    </script>
  </head>
  <body>

    <a href="#new" id="new">new</a>
  </body>
</html>

关于javascript - 主干 View 点击 Hello World ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8354239/

相关文章:

javascript - 如何为未定义的窗口对象编写测试用例 | Vue 测试工具 | Jest 框架

javascript - Backbone无法调用未定义/未加载数据的方法 'toJSON'

主干.js 收集事件

javascript - 如何使用 javascript 以 YY-MM-DD 格式返回月份和年份?

backbone.js - 在 Backbone 的嵌套集合中监听模型中的特定属性更改

javascript - jquery mobile 如何在 HTML 中注入(inject)类?

javascript - 如果我使用 _.bindAll(this) 为什么我的 Backbone.View.constructor.__super__ 未定义

javascript - 您能帮助我更改正则表达式以包含特定范围的 unicode 字符吗?

javascript - XML : Remove parent, 克隆到同级

javascript - jquery无法更改隐藏输入