jquery函数调用里面的click事件

时间:2016-01-26 10:42:14

标签: javascript jquery

这是我的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
    }
});

2 个答案:

答案 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();
    }   
});

但你不应该这样做