我遇到了
的问题$('.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>
有时候我想知道我是不是只是犯了愚蠢的错误,或者语言只是疯了......
答案 0 :(得分:2)
on()
仅与live()
类似。在您的情况下,主选择器将是您的.myElement
元素被追加到的容器元素,代理将是.myElement
,如下所示:
$('.parentOfMyElement').on('hover', '.myElement', function() {
// do stuff...
});
答案 1 :(得分:0)
对于所有其他方法(除了.live()...这是其被弃用的原因之一).on()仅适用于已存在的元素。如果要将事件处理程序绑定到非现有元素,则需要使用更高级别元素的委派。
E.g。 '.myElement'是'.myContainer'的子元素,然后就可以了
$('.myContainer').on('hover', '.myElement', function(e) {
...
});
答案 2 :(得分:0)
试试这个。
$('body').on('hover', '.myElement', function...);
正文可以引用您需要观看事件的任何上下文或容器。
答案 3 :(得分:0)