0

わかりましたので、users.js.coffee にいくつかの coffeescript があります。これは、ユーザー名をスクロールするときに Twitter ブートストラップ ポップオーバーを実行します (これは現在機能しています)。ポップオーバーにマウスを合わせないでください。

これが私のコードです(現在Uncaught ReferenceErrorをスローしています:ポップオーバーのスクロールオーバーでtimeoutObjが定義されていません)私の問題は明らかに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
 )
4

1 に答える 1

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="...

于 2012-09-17T14:26:14.293 に答える