这是我的javascript函数。问题是当我在click事件中调用函数时,它在Firefox中显示此错误,但在Chrome中也没有。
ReferenceError:未定义toDo
$(document.body).on("click", ".btnCheck", function(){
if () {
//do something
} else {
if (pcheck == "online") {
// Doing some operations and function calling
toDo();
} else {
toDo(); // function calling, HERE SHOWING ERROR IN FIREFOX
// ReferenceError: toDo is not defined
}
}
function toDo () {
//Do something
}
});
答案 0 :(得分:0)
解决方案是在first if语句之前移动toDo声明。它仍将具有完全相同的范围,但功能将可用。
编辑只是为了清楚
$(document.body).on("click", ".btnCheck", function(){
function toDo () {
//Do something
}
if () {
//do something
} else {
if (pcheck == "online") {
// Doing some operations and function calling
toDo();
} else {
toDo(); // function calling, HERE SHOWING ERROR IN FIREFOX
// ReferenceError: toDo is not defined
}
}
});
答案 1 :(得分:0)
你可以试试这个
var theFunction = function toDo () {
};
// then to execute it
theFunction();
在你的情况下
$(document).ready(function(){
var theFunction = function toDo () {
alert();
};
var pcheck = "test"
if (pcheck == "online") {
theFunction();
}else{
theFunction();
}
});
但你不应该这样做