我想知道如何用jQuery on()
$('.box').live({
mouseenter:
function() {
$(this).children('.menu').stop(true, true).fadeIn(fadeIn);
},
mouseleave:
function() {
$(this).children('.menu').stop(true, true).fadeOut(fadeOut);
}
});
有什么想法吗?
答案 0 :(得分:4)
$(document).on('hover', '.box', function(e) {
if( e.type == 'mouseenter') {
$(this).children('.menu').stop(true, true).fadeIn(fadeIn);
} else {
$(this).children('.menu').stop(true, true).fadeOut(fadeOut);
}
});
而不是document
,最好使用.box
的任何非动态的父元素。
了解 .on()
。
委托事件(aka live event)的.on()
语法是:
$( StaticParent ).on( eventName, target, handlerFunction );
答案 1 :(得分:2)
对于完全 .on
等效:
$(document).on({
mouseenter: function() {
$(this).children('.menu').stop(true, true).fadeIn(fadeIn);
},
mouseleave: function() {
$(this).children('.menu').stop(true, true).fadeOut(fadeOut);
}
}, '.box');
虽然这里的主要好处是您不需要使用document
,但您可以使用在页面生命周期内保证存在的最近父级。