2013-03-23 61 views
-1

我有下面的代码在所有浏览器包括Firefox正常工作:jQuery的断裂在Firefox,但没有其他的浏览器

var top; 
var imageHeight; 
function upFunction() { 
    top = parseInt($(".feature img").css("top")); 
    imageHeight = $(".feature img").height(); 
    if (top > (imageHeight - 335) * -1) { 
     $(".feature img").css("top", top - 1 + "px"); 
     $("#topPos").val(top - 1); 
    } 
}; 
$(document).ready(function() { 
$("a#up").mousedown(function(e) { 
     e.preventDefault(); 
     upFunction(); 
     timeoutId = setInterval(upFunction, 100); 
    }).bind('mouseup mouseleave', function() { 
     clearInterval(timeoutId); 
    }); 
}); 

但是有明显别人在我的网页的东西,这是造成这不是工作在Firefox和我无法解决这个问题。

有没有什么办法可以找出导致它破裂的原因,而不删除页面上的所有内容来找出它是什么?

编辑:

OK,用洁的答案的帮助下,似乎一个小的调整,我的代码使得它工作在Firefox。以下是我所做的:

function upFunction() { 
    var top = parseInt($(".feature img").css("top")); 
    var imageHeight = $(".feature img").height(); 
    if (top > (imageHeight - 335) * -1) { 
     $(".feature img").css("top", top - 1 + "px"); 
     $("#topPos").val(top - 1); 
    } 
}; 

并从全局范围中移除2个变量。不知道为什么它做了一个不同的,但它做到了。

+1

你是否有Firebug,如果是,控制台中显示的错误是什么?如果没有,得到它,然后看到错误。 – Amar 2013-03-23 15:09:12

+3

究竟“破”是什么意思?哪部分不工作? – JJJ 2013-03-23 15:09:13

+2

*“有没有什么方法可以找出导致它中断的原因,而无需从页面中删除所有内容以找出它是什么?”*是的,使用FF的开发人员工具或Firebug,查看控制台,设置断点,检查变量......只是普通的JavaScript调试。 – 2013-03-23 15:12:09

回答

0

尝试这些固定变量声明:

function upFunction() { 
    var img = $(".feature img"), 
     top = parseInt(img.css("top")); 
    if (top > (335 - img.height())) { 
     img.css("top", top - 1 + "px"); 
     $("#topPos").val(top - 1); 
    } 
}; 
$(document).ready(function() { 
    var timeoutId; 
    $("a#up").mousedown(function(e) { 
     e.preventDefault(); 
     upFunction(); 
     timeoutId = setInterval(upFunction, 100); 
    }).bind('mouseup mouseleave', function() { 
     clearInterval(timeoutId); 
    }); 
}); 

您的实际问题:通过在开发工具(萤火虫)检查它调试脚本。

0

你应该试试这个:

function upFunction(top, imageHeight) { 
    if (top > (imageHeight - 335) * -1) { 
     $(".feature img").css("top", top - 1 + "px"); 
     $("#topPos").val(top - 1); 
    } 
} 
$(document).ready(function() { 
    var top = parseInt($(".feature img").css("top")); 
    var imageHeight = $(".feature img").height(); 
    $("a#up").mousedown(function(e) { 
     e.preventDefault(); 
     upFunction(top, imageHeight); 
     timeoutId = setInterval(function(){ 
         upFunction(top, imageHeight); 
        }, 100); 
    }).bind('mouseup mouseleave', function() { 
     clearInterval(timeoutId); 
    }); 
}); 
0

不要使用top在全球范围变量名称,它已被使用。

尝试在您的浏览器控制台中输入console.log(top)alert(window.top)以供参考。

相关问题