【问题标题】:Bootstrap is murdering Backbone/Marionette view eventsBootstrap 正在谋杀 Backbone/Marionette 视图事件
【发布时间】:2013-05-03 16:44:49
【问题描述】:

在您对元素调用引导方法之前,Backbone 视图事件块完美结合。假设你有这个观点:

events: { 'click .menu li.edit': '_doSomething' }

然后你有一个引导程序:

$('.menu', this.$el).dropdown('toggle');

bootstrap.js中有一行:

var $el = $(element).on('click.dropdown.data-api', this.toggle)

...杀死主干绑定事件。

人们是如何处理这个问题的?我宁愿继续以“骨干方式”做事。我讨厌在应用程序“引导方式”和其他“主干方式”中处理某些事情。我喜欢一致性。

想法?

【问题讨论】:

  • 您能否提供一个完整的 JSFiddle 或 JSBin 来重现该问题?我已经用过 Backbone 和 Bootstrap 几十次了,从来没有遇到过这个问题。

标签: javascript backbone.js twitter-bootstrap marionette


【解决方案1】:

我实际上只是使用底层的 Backbone 样式。

例如,我的下拉菜单使用 Backbone 类,但没有使用任何链接数据属性。在我看来,我触发了主干.js 会完成的样式更改。

class App.Views.Articles.Index.Controls extends Backbone.Marionette.Layout
  template: JST['articles/index/controls']

  regions:
    pager: '#pager'

  ui:
    search_text: '#search-text'
    add_dropdown: '#add'
    add_dropdown_menu: '#add-dropdown-menu'

  events:
    'click #search-button': 'doSearch'
    'click #add': 'toggleAddDropDown'



  toggleAddDropDown: (event) ->
    event.stopPropagation()
    if @ui.add_dropdown.hasClass('open')
      @ui.add_dropdown_menu.fadeOut('fast')
      @ui.add_dropdown.removeClass('open')
    else
      @ui.add_dropdown.addClass('open')
      @ui.add_dropdown_menu.fadeIn('fast')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-15
    • 2023-03-31
    • 1970-01-01
    • 2014-05-16
    • 2016-01-05
    • 1970-01-01
    • 2013-01-15
    相关资源
    最近更新 更多