2013-05-28 33 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(); 
});