0

可能是愚蠢的问题。

如果我使用 Backbone 将方法绑定到某些事件,即悬停,我该如何使用 Bootstrap 的小部件?

这是一个示例(咖啡 js 混合,抱歉):

events:
 'mouseover .whatever': 'showPopover'

我显然不希望 showPopover() 绑定弹出框,如下所示:

showPopover: ->
  $('.whatever').popover(options)

这将导致它每次我悬停时都会绑定。无论如何,显然。我们目前的解决方法是做这样的事情:

 showPopover: ->
   $('.whatever').popover(show).popover(options)

感觉每次都像是在束缚。如果您将鼠标悬停在它上面几次,它将开始闪烁(再次,每次悬停时似乎都被束缚了)。

那么,我是 SOL 吗?我是否需要只删除 Backbone 事件绑定,通过附加方法或其他方法进行绑定?

如果您需要更多信息,请与我们联系。

感谢大家 :)。

4

1 回答 1

1

你绑定鼠标悬停有什么原因吗?如果您这样做是为了“及时”提高性能,那么我建议您测试 Bootstrap popover 保存在您的元素上的数据是否存在bs.popover

showPopover: ->
    var popover = $('.whatever').data('bs.popover');
    if(!popover) $('.whatever').popover(options);

但除非你真的想变得花哨,否则我会把这种准备放在initializeorrender中。

render: function() {
    this.$el.find('[data-toggle=popover]')
      .popover({
          placement: 'bottom'
      });
 }

演示

于 2013-10-29T21:42:05.763 回答