所以,我有一个奇怪的错误。如果非常fast move mouse around the page jquery用预览替换方块中错误的img src。
这是 js代码:
$('.mini-info').bind('mouseenter', function() {
var xex = $(this).position().left;
var yey = $(this).position().top;
sim = $('img', this).attr('src');
kuda = $('a', this).attr('href');
$('#bcase div.'+$(this).attr('id')).addClass('active').css({
'top' : yey,
'left' : xex
}).attr({'onclick': 'location.href="'+kuda+'"'});
var omg = $('#bcase div.'+$(this).attr('id')+' div.b').length;
$('#bcase div.'+$(this).attr('id')+' div.b').css({
'width': wid/omg
});
});
$('#bcase > div').bind('mouseleave', function() {
$(this).removeClass('active');
$('.mini-info#'+$(this).attr('class')+' img').attr({'src': sim});
});
可以修复吗?
正常工作是当您使用预览将鼠标移动到其中一个方块时,脚本将在鼠标下更改图像。它工作正常。但上面的错误并不好......
答案 0 :(得分:1)
在mouseleave事件中,您使用在{mouse}事件中定义的sim
变量
然后通过快速鼠标移动,将在前一事件的鼠标之前调用另一个div的mouseenter。
你必须改变你的拱门。例如,在mouseenter中创建新div时,此时绑定mouseleave事件 有点东西(未经测试):
$('.mini-info').bind('mouseenter', function() {
var xex = $(this).position().left;
var yey = $(this).position().top;
var sim = $('img', this).attr('src');
kuda = $('a', this).attr('href');
$('#bcase div.'+$(this).attr('id')).addClass('active').css({
'top' : yey,
'left' : xex
}).attr({'onclick': 'location.href="'+kuda+'"'})
.bind('mouseleave', function() {
$(this).removeClass('active');
$('.mini-info#'+$(this).attr('class')+' img').attr({'src': sim});
});
var omg = $('#bcase div.'+$(this).attr('id')+' div.b').length;
$('#bcase div.'+$(this).attr('id')+' div.b').css({
'width': wid/omg
});
});
请参阅jsfiddle:http://jsfiddle.net/bouillard/ptJQy/