我的头脑陷入困境。谁能告诉我为什么这适用于“ mouseenter”而不适用于“ click”?

http://jsfiddle.net/jxUGw/3/

//////THIS DOESNT WORK
$('#view_panel').on('click', 'img.main_image', function(){
    $(this).parent().find('div.image_box').show();
});

$('#view_panel').on('click', 'img.main_image', function(){
    $(this).parent().find('div.image_box').hide();
});


/////THIS WORKS
$('#view_panel').on('mouseenter', 'img.main_image', function(){
    $(this).parent().find('div.image_box').show();
});

$('#view_panel').on('mouseleave', 'img.main_image', function(){
    $(this).parent().find('div.image_box').hide();
});

最佳答案

绑定的第二个事件在第一个事件之后立即触发。因此,div在显示时将被隐藏。

尝试使用toggle()代替。

关于jquery - .on()mouseenter事件有效,但单击不起作用jQuery 2,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16799821/

10-09 17:55
查看更多