【问题标题】:In Backbone how to get click event on an anchor tag within a list item在 Backbone 中,如何在列表项中的锚标记上获取单击事件
【发布时间】:2020-12-29 21:44:40
【问题描述】:

在渲染函数的主干视图中,我有一个锚标记,其中包含一个无序列表中的列表项。总之

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>'));
  } 
});

我想在点击Link 2时打开一个警告框,而不是导航到其他页面。

【问题讨论】:

    标签: javascript jquery backbone.js backbone-views jquery-click-event


    【解决方案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 添加到第二个锚点才能选择它。

    See docs 了解更多信息。

    【讨论】:

      猜你喜欢
      • 2014-11-17
      • 1970-01-01
      • 1970-01-01
      • 2015-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多