2013-10-29 62 views
0

也許愚蠢的問題。如何處理Backbone中的Bootstrap小部件的懸停綁定?

如果我使用Backbone將方法綁定到某些事件,即懸停,我該如何使用Bootstrap的小部件?

下面是一個例子(咖啡JS組合,不好意思):

events: 
'mouseover .whatever': 'showPopover' 

我顯然不希望showPopover()到酥料餅的結合,就像這樣:

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

這將導致它每當我徘徊時都會綁定。顯然,無論如何。 我們目前的解決辦法是做這樣的事情:

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

感覺就像它的結合每一次。如果你將鼠標懸停在它上面幾次,它會開始閃爍(再次,看起來每次你懸停時都會受到束縛)。

那麼,我是SOL嗎?我是否需要放棄Backbone事件綁定,通過attach方法執行我的綁定?

讓我知道你是否需要更多信息。

謝謝大家:)。

回答

1

是否有你綁定到mouseover的原因?如果你是爲了「及時」提高性能,那麼我會建議測試Bootstrap彈出窗口保存在你的元素bs.popover上的數據是否存在。

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

但是,除非你真的想獲得幻想,我把那種準備進入或者initializerender

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

Demo