1

私の心は動揺しています。これが「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();
});
4

2 に答える 2

3

バインドされている 2 番目のイベントは、最初のイベントの直後に発生しています。したがって、div は表示されるとすぐに非表示になります。

toggle()代わりに使用してみてください。

于 2013-05-28T19:25:15.637 に答える
1

機能していないわけではありません。クリックしたときに両方の関数を呼び出すだけです。

代わりにそれを試してください(1クリック機能):

$('#view_panel').on('click', 'img.main_image', function(){
    $(this).parent().find('div.image_box').toggle();
});
于 2013-05-28T19:25:42.283 に答える