User113716 的出色答案将不再适用于 jQuery 1.9+,因为不再支持 伪事件 hover (upgrade guide)。
此外,由于 jQuery 3.0 delegate() 用于绑定事件已正式弃用,因此请使用 new on()(docs) 进行所有事件绑定。
您可以通过将hover 替换为mouseenter mouseleave 并切换到on() 语法来轻松迁移user113716 的解决方案:
$('mydiv').on('mouseenter mouseleave', 'seconddiv', function(event) {
$(this).toggle( event.type === 'mouseenter' );
});
如果您的问题比简单的toggle 更复杂,我建议绑定两个单独的事件:
$('mydiv').on('mouseenter', 'seconddiv', function( event ) {
// do something
}).on('mouseleave', 'seconddiv', function( event ) {
// do something different
});
注意: 由于 hover 在 v1.9 中被删除,on() 在 v1.7 中被引入,所以没有真正需要使用 delegate() 的解决方案 - 但如果你喜欢出于某种原因;它仍然存在(目前)并且可以完成工作:
$('mydiv').delegate('seconddiv','mouseenter mouseleave', function(event) {
$(this).toggle( event.type === 'mouseenter' );
});