Backbone只是在事件中添加变量

时间:2014-07-24 08:08:51

标签: javascript backbone.js

如何将元素变量添加到任何事件?我想做这样的事情: HTML代码:

 <ul id="ul">
     <li>
      <a href="#" id="first">First</a>
      <a href="#" id="second">Second</a>
      <a href="#" id="third">Third</a>
     </li>
 </ul>
 <ul>
     <li>
      <a href="#" id="dont-need-to-work">Fourth</a>
     </li>
 </ul>

和js:

    var Any = Backbone.View.extend({
      events: {
        'click '+this.$el.find('a'): function (e) {
          this.anyAction(e);
        }
      },

      anyAction: function (event) {
          console.log($( event.currentTarget ).attr('id'))
      }

    });

    var view = new Any({
      el: 'ul#ul',
    })

我找到了一些选项,大部分是_events,但我需要将事件发送到方法。

http://jsfiddle.net/Bd3dQ/ 这是我的例子不起作用)

2 个答案:

答案 0 :(得分:1)

你应该为这些html元素添加一个类:

<ul id="ul">
    <li>
        <a href="#" class="elemToClick" id="first">First</a>
        <a href="#" class="elemToClick" id="second">Second</a>
        <a href="#" class="elemToClick" id="third">Third</a>
    </li>
</ul>

在您的视图中,附加一个侦听器 class

events: {
    'click .elemToClick': 'anyAction'
}

答案 1 :(得分:1)

您应该在事件中添加函数名称并更改选择器:

  events: {
    'click a': 'anyAction'
  },

  anyAction: function (event) {
      console.log($( event.currentTarget ).attr('id'))
  }