单击时未触发 Backbone.js 事件-未正确指定事件?

ujv3wf0j  于 2022-11-24  发布在  其他
关注(0)|答案(1)|浏览(180)

在这个 Backbone.js 视图中,视图正在初始化,但是当点击带有.“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>
mwecs4sa

mwecs4sa1#

您的代码在隔离状态下按预期工作(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的完全访问权限之前执行代码。
检查所有这些内容,如果您仍然有问题,也许您可以提供更多的详细信息/代码。

相关问题