javascript - jQuery - 使用 .hover 而不是 .click

标签 javascript jquery

我的页面上有以下代码。

http://jsfiddle.net/SO_AMK/r7ZDm/

正如您所看到的,这是一个链接列表,每次单击链接时,都会在相关链接的正下方打开弹出框。

现在,我需要做的基本上是相同的,除了我需要使用 .hover 事件并延迟执行 2 秒。因此,用户不应单击,而应将光标保持在链接上 2 秒钟。

听起来很简单,但我无法让定位正常工作。这是我尝试过的:

$('a.showreranks').hover(function()
    {   
    $(this).data('timeout', window.setTimeout(function()
        {
            position = $(this).position();   
        $('#rerank_details').css('top', position.top + 17);   
        $('#rerank_details').slideToggle(300);    
        }, 2000));
    },
    function()
    {
        clearTimeout($(this).data('timeout'));
    });

有人可以修改它以使其工作吗?

最佳答案

尝试这样:

$('a.showreranks').hover(function()
{   
    var self = this;
    $(this).data('timeout', window.setTimeout(function() {
        var position = $(self).offset();   
        $('#rerank_details').css('top', position.top + 17);   
        $('#rerank_details').slideToggle(300);    
    }, 2000));
},
function()
{
    clearTimeout($(this).data('timeout'));
});

DEMO

关于javascript - jQuery - 使用 .hover 而不是 .click,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11143851/

相关文章:

javascript - 未捕获的 TypeError : $. ajax(...).success 不是函数

javascript - 如何按波斯字母表对列表进行排序?

jquery - 使用 jquery 更改 Bootstrap 类的类名

c# - 将标签值从 C# 传递到 Bootstrap 模式

javascript - 如何自动关闭我的警报

php - 将新行转换为正确的 Javascript 值

javascript - 如何将当前页面的 DOM 加载到变量中,然后使用 JavaScript 将其写入 iframe?

javascript - 无法使用 Tab 键选择 Kendo Multiselect 的数据

javascript - create-react-app 如何在运行 `npm run start` 后重新使用现有的浏览器选项卡?

javascript - asp.net 如何在点击文本框时显示一个div。使用 jquery