鼠标悬停在jQuery中

时间:2016-02-06 04:35:45

标签: jquery mouseevent

我为鼠标悬停添加了此代码(status_id各不相同)

$("#test"+status_id).mouseover(function(){
   $('.data'+status_id+'a').show();
});

但是,它不会显示鼠标悬停。但是添加一个警告来打印类,如:

alert("#test"+status_id)
$("#test"+status_id).mouseover(function(){
   $('.data'+status_id+'a').show();
});

导致该功能开始正常工作。我不知道为什么会有区别。有什么建议吗?

3 个答案:

答案 0 :(得分:0)

我认为这部分:$('.data'+status_id+'a')在您调用它之前创建。像这样使用:

$(document).on("mouseover","#test"+status_id, function () {

   $('.data'+status_id+'a').show();

});

注意: 我希望这个$('.data'+status_id+'a').show();意味着这样的事情:

<a class="data5" ></a>

答案 1 :(得分:0)

这应该有效:

$("#test"+status_id).hover(function () {
   $('.data'+status_id+'a').show();
   alert('test');
});

答案 2 :(得分:0)

我猜测问题是你的代码在浏览器准备好之前就已经运行了(并且警报推迟了它的工作)。在检查浏览器是否准备就绪时,您应该总是将jQuery代码包围起来:

$(document).ready(function() {

    $("#test"+status_id).mouseover(function(){
        $('.data'+status_id+'a').show();
    });

}

许多人更喜欢,(因此你会经常看到),“速记”版本:

$(function() {

    $("#test"+status_id).mouseover(function(){
        $('.data'+status_id+'a').show();
    });

}