Backbone事件在点击时没有触发 - 没有正确指定事件?

时间:2013-08-03 15:17:52

标签: javascript backbone.js javascript-events backbone-events

在此骨干视图中,视图已初始化,但单击带有“.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>

1 个答案:

答案 0 :(得分: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之前执行代码。

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