在我检查的版本中,您正在另一个 mouseleave 处理程序中处理 mouseleave,并且您的选择器中有错字
$('#abc').mouseleave(function(){...
应该是
$('.abc').mouseleave(function(){...
您最初发布的版本
http://jsfiddle.net/EpV87/1/
HTML
<a class="abc">ABC</a>
<div id="def">TEST</div>
Javascript
$('.abc').mouseenter(function(e) {
$('#def').show(200);
}).mouseleave(function(e){
$('#abc').mouseleave(function(){
$('#def').hide(200);
});
});
解决方案
http://jsfiddle.net/EpV87/6/
HTML
<a class="abc">ABC</a>
<div id="def" style="display: none;">TEST</div>
Javascript
$('.abc')
.on("mouseenter", function () {
$("#def").show();
})
.on("mouseleave", function () {
$("#def").hide();
});