.on()mouseenter事件有效但点击不起作用jquery 2

时间:2013-05-28 19:23:25

标签: jquery event-delegation

我的思绪令人难以置信。任何人都可以告诉我为什么这适用于' mouseenter'但没有点击'?

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();
});

2 个答案:

答案 0 :(得分:3)

绑定的第二个事件是在第一个事件之后立即触发。所以div很快就被隐藏了。

请尝试使用toggle()

答案 1 :(得分:1)

不是它不起作用,你只需在点击时调用这两个功能。

尝试改为(1次点击功能):

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