2013-05-28 95 views
1

我的想法令人惊叹。任何人都可以告诉我为什么这与'mouseenter'一起使用,而不是'click'?.on()mouseenter event works works but click does not work jquery 2

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

你要指定两个click事件,这说明你的图像框中的第一个和第二个隐藏它。他们可能发生得如此之快以至于看起来没有工作。您应该将其更改为切换可见性的单击事件。 –

回答

3

第二个事件的约束是第一个之后立即烧成。所以这个div很快就会被隐藏起来。

尝试使用toggle()来代替。

+2

小提琴你的答案:http://jsfiddle.net/jxUGw/5/ – tymeJV

1

这并不是说它没有工作,你只是在你点击时调用这两个函数。

尝试,而不是(1次点击功能):

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