存在的函数以“未定义”的形式列出

Function which exists is listed as "undefined"

本文关键字:未定义 存在 函数      更新时间:2023-09-26

我不知道确切的原因或如何这是发生的(虽然如果有人有任何信息,为什么或如何,它将非常感激,如果它被张贴在这里)。

我的函数应该只是对指定文件进行一个简单的ajax调用,然后该文件应该处理该调用。

function processLog(process, ajaxData, url) {
    switch(process) {
         case 'send':
        $.post(url, {clientData : ajaxData, type : process}, 
            function(data){
                writeLog(data);
            }
        );
        break;
          case 'retrieve':
        $.post(url, {clientData : ajaxData, type : process}, 
                function(data){
                    retrieveChatroomData(data); 
                }
        );            
        break;
      }

}

基本上,函数接收三个参数:process, ajaxData, url。该进程应该是值sendretrieve中的一个。如果它的值是send,它只是将数据写入日志。如果是检索,则检索之前在窗口中发送的全部数据,并将其发布给所有人查看。如果有人需要看到更多的代码,我会很高兴发布,只要告诉我:)。

主要问题是,当我点击以下按钮:

<input type="button" value="send" id="chatroom_send" onclick="processLog('send', $('textarea.chatroom_textarea').value, 'chatroom.base.php');" />

我得到一个"processLog"是未定义的错误在Firebug控制台。

我做错了什么?

你的代码可能是这样的:

$(function() {
    function processLog(/* ... */) {
        // ...
    }
});

将代码包装在一个现成的处理程序中,这样的事情是需要的,但它将把processLog拉出全局作用域。要么将其移出ready处理程序,要么将其添加到ready处理程序的某处,以将其导出到全局作用域:

window.processLog=processLog;