Backbonejs-view-delegateevents

提供:Dev Guides
移動先:案内検索

BackboneJS-デリゲートイベントの表示

説明

イベントを処理するコールバックメソッドを使用して、指定されたDOM要素に要素をバインドします。 ビューからイベントが削除された場合、このメソッドを使用してイベントをビューに添付できます。

構文

delegateEvents(events)

パラメーター

イベント-ビューに再アタッチするために必要なイベントを提供します。

<!DOCTYPE html>
<html>
   <head>
      <title>View Example</title>
      <script src = "https://code.jquery.com/jquery-2.1.3.min.js"
         type = "text/javascript"></script>

      <script src = "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.2/underscore-min.js"
         type = "text/javascript"></script>

      <script src = "https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.2/backbone-min.js"
         type = "text/javascript"></script>
   </head>

   <body>
      <div id = "mydiv"></div>
      <script type = "text/javascript">

        //'ViewDemo' is a name of the view class
         var ViewDemo = Backbone.View.extend ({

           //When click event occurs it activates the defined function 'delegateFunc'
            events: {
               'click button': 'delegateFunc'
            },
            delegateFunc: function () {
               this.remove();  //The 'remove()' method removes the view from the DOM
               document.write("Welcome to finddevguides...");
            },

           //'render' provides the logic required to construct the view
            render: function () {

              //'$el' is cached object that push the content defined within it and
              //display the value when user clicks the button
               this.$ell('<button>Click to delegate events</button>');
            },

           //This function is called when the view is instantiated
            initialize:function() {
               this.render();
            }
         });

        //'myview' is an instance of the 'ViewDemo' class
         var myview = new ViewDemo({el: '#mydiv'});  //'el' defines which element to be used as the view reference

        //Here defining the events which are reattaching to the view
        //using 'delegateEvents()' method
         myview.delegateEvents();
      </script>

   </body>
</html>

出力

上記のコードがどのように機能するかを確認するために、次の手順を実行してみましょう-

  • 上記のコードを delegateevents ファイルに保存します。
  • このHTMLファイルをブラウザーで開きます。