0

在这个主干视图中,视图正在初始化,但是当单击具有“.insert-link”类的按钮时不会触发 insertLink 事件。我是否缺少与绑定事件有关的东西?

MyView.Show = Backbone.View.extend({

  events: {
    "click .insert-link": "insertLink"
  },

  initialize: function(options) {
    _.bindAll(
              this,
              "insertLink"
              );
  },

  insertLink: function(e){
    console.log("triggered at last!");
  }
});

这是 DOM 的相关部分:

<div id="insert_link">
    <a href="#" class='insert-link btn btn-mini' data-landing-page-id="<%= current_user.default_landing_page_id.to_s %>">
        Insert Link
    </a>
</div>


  <script type="text/javascript">
  $(function(){
    new MyView.Show({
      el: $('#insert_link')
    });
  });
  </script>
4

1 回答 1

0

您的代码在隔离时按预期工作(http://jsfiddle.net/7nYhD/1/

var MyView = {};

MyView.Show = Backbone.View.extend({

    events: {
        "click .insert-link": "insertLink"
    },

    initialize: function(options) {
       _.bindAll(
          this,
          "insertLink"
          );
    },

    insertLink: function(e){
        console.log("triggered at last!");
    }
});

$(function(){
   new MyView.Show({
     el: $('#insert_link')
   });
 });

这意味着您的问题更可能出在:脚本以错误的顺序加载,使用旧版本的脚本,或者您的代码在完全访问 dom 之前执行。

检查所有这些事情,如果您仍然有问题,也许您提供更多详细信息/代码。

于 2013-08-04T09:11:55.453 回答