To jest moja funkcja javascript. Problem polega na tym, że wywołuję funkcję wewnątrz zdarzenia kliknięcia, która pokazuje ten błąd w przeglądarce Firefox, ale nie w Chrome.
ReferenceError: toDo nie jest zdefiniowany
$(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
}
});
Odpowiedzi:
0 dla odpowiedzi № 1Rozwiązaniem jest po prostu przejście do deklaracji Zrób przed pierwszą instrukcją if. Będzie nadal miał dokładnie ten sam zakres, ale funkcja będzie dostępna.
Edytuj tylko, aby było jasne
$(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
}
}
});
0 dla odpowiedzi nr 2
Możesz spróbować tego
var theFunction = function toDo () {
};
// then to execute it
theFunction();
W Twoim przypadku
$(document).ready(function(){
var theFunction = function toDo () {
alert();
};
var pcheck = "test"
if (pcheck == "online") {
theFunction();
}else{
theFunction();
}
});
Ale nie powinieneś tego robić