В Backbone, как получить событие клика по тегу привязки в элементе списка

В представлении магистрали в функции рендеринга у меня есть тег привязки с элементом списка внутри неупорядоченного списка. короче

var DemoView = Backbone.View.extend({
  el: '#body',
  
  render: function() {
    this.$('sidebar-nav > ul').append($('<li class="divider"></li>'));
    this.$('.sidebar-nav > ul')
      .append($('<li><a href="' + _.path(Overture.contextPath, '/calendars/', 
    this.controller.model.id,'/preview') + '" class="internal-link">Link 1</a></li>'));
    this.$('.sidebar-nav > ul')
        .append($('<li><a href="#" class="internal-link">Link 2</a></li>'));
  } 
});

Я хочу открыть окно предупреждения при нажатии на Ссылку 2 без перехода на другую страницу.


person Abhijit Srivastava    schedule 29.12.2020    source источник


Ответы (1)


Вы можете настроить представление events:

var DemoView = Backbone.View.extend({
  el: '#body',
  events: {
    'click .alert-link': onAlertLinkClick
  },
  onAlertLinkClick: function() {
     // put your alert code here
  },
  render: function() {
    this.$('sidebar-nav > ul').append($('<li class="divider"></li>'));
    this.$('.sidebar-nav > ul')
      .append($('<li><a href="' + _.path(Overture.contextPath, '/calendars/', 
    this.controller.model.id,'/preview') + '" class="internal-link">Link 1</a></li>'));
    this.$('.sidebar-nav > ul')
        .append($('<li><a href="#" class="internal-link alert-link">Link 2</a></li>'));
  } 
});

Вы должны добавить alert-link ко второму якорю, чтобы выбрать его, конечно.

Дополнительную информацию см. в документации.

person moonwave99    schedule 29.12.2020