您好我搜索了一些我需要的功能,我在StackOverFlow上找到了它。 问题在于我得到的所有浏览器" bug"在脚本上写着:
mouse_is_inside is not defined
但是它的定义,以及功能是否完美,并且无法摆脱该消息的任何进展?
我试过了。但我不知道如何假设:
if (typeof variable === 'undefined') {
// variable is undefined
}
我的功能:
$(document).ready(function()
{
$('#contactbox').hover(function(){
mouse_is_inside=true;
}, function(){
mouse_is_inside=false;
});
$("body").mouseup(function(){
if(! mouse_is_inside) // the problem is here says not defined .
{
if ($.browser.msie && parseInt($.browser.version, 10) === 7) {
$("#main").css('z-index','0');
}
$('#contactb a').removeClass('cactive');
$('#contactb a').addClass('cnoactive');
$('#contactbox').hide()
}
});
});
编辑感谢我的不好,不知道它如此简单。我会勾选答案。
答案 0 :(得分:2)
您只需添加以下内容:
var mouse_is_inside = false;
...就在函数内部。 E.g:
$(document).ready(function()
{
var mouse_is_inside = false;
// ...the rest of the code
});
因为错误是正确的:您还没有在任何地方定义它。但那是你第一次这样做:
mouse_is_inside=false;
或者这个:
mouse_is_inside=true;
...你通过掠夺The Horror of Implicit Globals的猎物来定义它。在JavaScript"松散"模式(默认值),如果您尝试读取未定义符号的值,则它为ReferenceError
;但如果你写到一个未定义的符号,它会创建一个全局变量(隐式)。幸运的是,从ES5开始,我们已经严格遵守了#34;模式,使两个操作都应该是错误。
答案 1 :(得分:1)
添加mouse_is_inside
的声明,即
$(document).ready(function () {
var mouse_is_inside;
$('#contactbox').hover(function () {
mouse_is_inside = true;
}, function () {
mouse_is_inside = false;
});
$("body").mouseup(function () {
if (!mouse_is_inside) // the problem is here says not defined .
{
if ($.browser.msie && parseInt($.browser.version, 10) === 7) {
$("#main").css('z-index', '0');
}
$('#contactb a').removeClass('cactive');
$('#contactb a').addClass('cnoactive');
$('#contactbox').hide()
}
});
});
答案 2 :(得分:0)
宣布:
var mouse_is_inside
文件就绪后