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 に答える