我试图使用:
$('mydiv').delegate('hover',function() { $('seconddiv').show(); },function() { //For some reason jQuery won't run this line of code $('seconddiv').hide(); });
解决方法
User113716的伟大的答案将不再工作在jQuery 1.9,因为伪事件悬停不再支持(
upgrade guide)。
也因为jQuery 1.7,建议使用新的on()
(docs)所有事件绑定目的(反正委托()仍然做的工作)。
您可以通过使用mouseenter mouseleave替换hover来轻松迁移user113716的解决方案:
$('mydiv').delegate('seconddiv','mouseenter mouseleave',function(event) { $(this).toggle( event.type === 'mouseenter' ); });
使用on():
$('mydiv').on('mouseenter mouseleave','seconddiv',function(event) { $(this).toggle( event.type === 'mouseenter' ); });
如果你的问题比一个简单的切换更复杂,我建议绑定两个单独的事件:
$('mydiv').on('mouseenter',function( event ) { // do something }).on('mouseleave',function( event ) { // do something different });