gpt4 book ai didi

javascript - clearTimeout 不适用于未定义的弹出窗口变量

转载 作者:行者123 更新时间:2023-12-02 19:21:53 24 4
gpt4 key购买 nike

好吧,我在users.js.coffee中有一些coffeescript,它在滚动用户名时运行twitter Bootstrap 弹出窗口(当前正在工作)现在我想要做的是使用超时来隐藏弹出窗口,如果用户未将鼠标悬停在弹出窗口上。

这是我的代码(当前抛出 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
)

最佳答案

这是正确的代码:

$ ->
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)

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

关于javascript - clearTimeout 不适用于未定义的弹出窗口变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12455811/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com