我用mousemove的悬停功能有点问题。 但是有什么不对?
工作示例 - > http://www.jsfiddle.net/V9Euk/306/
$('.tip').live('hover', function(e)
{
if (e.type == 'mouseover')
{
$('#'+this.id+' .tooltip').show();
}
if (e.type == 'mousemove')
{
alert('move');
$('#'+this.id+' .tooltip').css({ left: e.pageX + 20, top: e.pageY + 20});
}
if (e.type == 'mouseout')
{
$('.tooltip').hide();
}
});
答案 0 :(得分:5)
没有hover
事件 - 您需要包含您使用的所有三个事件,例如:
$('.tip').live('mouseout mousemove mouseover', function(e)
请参阅live()
中多个事件的jQuery documentations示例:
$('.hoverme').live('mouseover mouseout', function(event) {
if (event.type == 'mouseover') {
// do something on mouseover
} else {
// do something on mouseout
}
});
答案 1 :(得分:0)
问题是hover()
映射到mouseover
和`mouseleave),而不是你正在使用的事件。
$("...").live("hover", function(e) {
...
});
相当于:
$("...").live("mouseover mouseleave", function(e) {
...
});
如果您也想要mousemove
事件,可以使用:
$("...").live("hover mousemove", function(e) {
...
});
答案 2 :(得分:0)
哈!您之前删除了相同的问题,在我点击发布回复之后。
.hover()
永远不会返回mousemove,它只会返回mouseenter / mouseleave。
您应该使用
直接绑定到mousemove事件$('.tip').live('mousemove', function(e) {
// do stuff here
});