2012-09-17 138 views
0

好吧,所以我有一些咖啡腳本在users.js.coffee中運行Twitter用戶名(當前正在工作)的滾動上引導popover現在我想要能夠做的就是使用如果用戶沒有將鼠標懸停在彈出窗口上,則會超時隱藏彈出窗口。clearTimeout不適用於popover變量undefined

這裏是我的代碼(目前引發Uncaught ReferenceError:timeoutObj沒有在popover的scrollover上定義)我的問題顯然是用timeoutObj變量,儘管它應該在mouseleave方法中設置?

$ -> 
timeoutObj = undefined 
$(".comment-user-name").popover({ 
    trigger: "manual" 
    placement: 'top' 
    template: '<div class="popover" onmouseover="clearTimeout(timeoutObj);$(this).mouseleave(function() {$(this).hide(); });"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>' 
}) 
$(".comment-user-name").mouseenter((event, ui) -> 
    $(".comment-user-name").popover('show') 
) 
$(".comment-user-name").mouseleave((event, ui) -> 
    timeoutObj = setTimeout (-> $(".comment-user-name").popover('hide')), 3000 
) 

回答

2

這是正確的代碼:

$ -> 
     timeoutObj = null 
     $(".comment-user-name").popover(
      { 
      trigger : "manual" 
      placement: 'top' 
      template : '<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>' 
      } 
    ) 

     $(".popover").onmouseover(
      (event, ui) -> 
       clearTimeout(timeoutObj) 
       $(this).mouseleave(-> $(this).hide()) 
    ) 
     $(".comment-user-name").mouseenter((event, ui) -> $(".comment-user-name").popover('show')) 
     $(".comment-user-name").mouseleave((event, ui) -> timeoutObj = setTimeout (-> $(".comment-user-name").popover('hide')), 3000) 

不能使用timeoutObj在'<div class="popover" onmouseover="...

+0

謝謝正是我一直在尋找。 –