Firefox对不适用的JQuery setTimeout做出反应

时间:2014-02-17 21:48:42

标签: jquery firefox settimeout

http://cfk18.s3-website-us-west-2.amazonaws.com/< - 只关注第一张图片。

我似乎遇到了一个问题,其中firefox中的某些jquery无法正常工作......但IE是(我知道,我知道)

var hover = $('#par1'),
    box = $('.sq1');
hover.hover(function () { 
    box.toggleClass('index2');
});

var linkloc = $('#par1'),
    link = $('#frnt1');
linkloc.on('mouseenter', function() {
    function linkadd() {  
        link.html("<a target=_blank href=http://www.google.co.uk><img src=small1.JPG /></a>"); } 
    setTimeout(linkadd, 1500)    
});

linkloc.on('mouseleave',function(){
    link.html("<img src=small1.JPG />");
});

我很欣赏代码可能有点凌乱,但我仍然在学习。

现在的问题是,最上面的代码是对底部的setTimeout做出反应。 (它使用setTimeout反复切换)即使它在其中调用函数名称。但这在IE中不会发生。

如果我删除了setTimeout,那么最上面的代码就可以正常工作了,但我确实需要它用于底部。

我会包含更多代码(如果需要可以包含)但是它会变得非常混乱,并且由于缺少图像而无法在jsfiddle上加载。

我还有一个问题,即在移动我的鼠标时,底部正确地从html中删除href ...但是在超时期限之后将其添加回来。这在IE中也不会发生。

1 个答案:

答案 0 :(得分:0)

离开DIV时需要清除计时器:

var linkloc = $('#par1'),
    link = $('#frnt1'),
    timer = null;
linkloc.on('mouseenter', function() {
    function linkadd() {  
        link.html("<a target=_blank href=http://www.google.co.uk><img src=small1.JPG /></a>"); } 
    timer = setTimeout(linkadd, 1500)    
});

linkloc.on('mouseleave',function(){
    if (timer) {
        clearTimeout(timer);
        timer = null;
    }
    link.html("<img src=small1.JPG />");
});