【问题标题】:jQuery hover on not working live worksjQuery悬停在不工作的现场作品上
【发布时间】:2013-01-16 13:15:23
【问题描述】:

我遇到了问题

$('.myElement').on('hover',function({...});

在尝试了.on('hover'.hover(),这两个都不起作用之后,我尝试了.live('hover',).live('hover',) 工作.. 但是,我使用的是 jQuery 1.8.3,这是为什么呢? 这是我正在使用的代码:

jQuery

$('.myElement > a').live('hover',function(event) {
    //do stuff
}

HTML

<div class="myElement">
    <a href="#" />
</div>

有时我想知道我是在犯愚蠢的错误还是语言只是疯狂..

【问题讨论】:

    标签: html jquery jquery-hover jquery-on


    【解决方案1】:

    on() 仅当您在第二个参数中将委托选择器传递给live() 时才能像live() 一样工作。在您的情况下,主要选择器将是您的 .myElement 元素被附加到的容器元素,委托将是 .myElement,如下所示:

    $('.parentOfMyElement').on('hover', '.myElement', function() {
        // do stuff...
    });
    

    【讨论】:

      【解决方案2】:

      至于所有其他方法(除了 .live() ...这是不推荐使用的原因之一) .on() 仅适用于已经存在的元素。如果您还想将事件处理程序绑定到尚不存在的元素,则需要使用来自更高级别元素的委托。

      例如'.myElement' 是 '.myContainer' 的子元素,那么你可以这样做

      $('.myContainer').on('hover', '.myElement', function(e) {
          ...
      });
      

      【讨论】:

        【解决方案3】:

        试试这个。

        $('body').on('hover', '.myElement', function...);
        

        body 可以引用您需要观察事件的任何上下文或容器。

        【讨论】:

          【解决方案4】:

          试试这个

          $('.myElement > a').hover(function(event) {
          //do stuff
            alert('hover');
          });
          

          看到这个Example

          您好。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多