【问题标题】:Trigger a delayed hover event with Jquery使用 Jquery 触发延迟悬停事件
【发布时间】:2011-11-19 09:58:28
【问题描述】:

我正在尝试触发延迟悬停事件:

$(".graphic").delay(500).trigger('mouseover').trigger('mouseout');

但是延迟被忽略了。

有什么想法吗?

【问题讨论】:

    标签: javascript jquery html javascript-events


    【解决方案1】:

    delay() 只影响动画队列,但trigger() 是同步的。您可以使用queue() 来安排在延迟后触发事件的函数:

    $(".graphic").delay(500).queue(function(next) {
        $(this).trigger("mouseover").trigger("mouseout");
        next();
    });
    

    【讨论】:

      【解决方案2】:

      .delay() 方法最适合延迟在排队的 jQuery 效果之间

      要延迟初始效果,请使用setTimeout() 函数。顺便说一句,您可以使用mouseover() 而不是trigger('mouseover')

      setTimeout(function () {
        $(".graphic").mouseover().mouseout();
      }, 500); 
      

      【讨论】:

        【解决方案3】:

        jQuery API 说:

        只有队列中的后续事件被延迟;例如,这不会延迟不使用效果队列的 .show() 或 .hide() 的无参数形式。

        也许您可以设置一个计时器,使用 Windows.setTimeout 在 500 毫秒后触发鼠标悬停/移出

        【讨论】:

          猜你喜欢
          • 2010-09-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-01-25
          相关资源
          最近更新 更多