Javascript 存在的函数列为;“未定义”;
我不知道这到底是为什么或如何发生的(尽管如果有人知道为什么或如何发生的任何信息,如果在这里发布,将不胜感激) 我的函数应该只是对指定的文件进行一个简单的ajax调用,然后该文件应该处理该调用Javascript 存在的函数列为;“未定义”;,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我不知道这到底是为什么或如何发生的(尽管如果有人知道为什么或如何发生的任何信息,如果在这里发布,将不胜感激) 我的函数应该只是对指定的文件进行一个简单的ajax调用,然后该文件应该处理该调用 function processLog(process, ajaxData, url) { switch(process) { case 'send': $.post(url, {clientData : ajaxData, type : process},
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。该过程应该是值发送或检索。如果它的值是send,它只是将数据写入日志。如果是retrieve,它将检索之前在窗口中发送的所有数据,并将其发布给所有人查看。如果有人需要查看更多代码,我很乐意发布,只需告诉我:)
主要问题是,当我单击以下按钮时:
<input type="button" value="send" id="chatroom_send" onclick="processLog('send', $('textarea.chatroom_textarea').value, 'chatroom.base.php');" />
我在Firebug控制台中得到一个“processLog”是未定义的错误
我做错了什么 您的代码可能如下所示:
$(function() {
function processLog(/* ... */) {
// ...
}
});
有些事情需要将代码包装到就绪处理程序中,但它会将processLog
从全局范围中拉出来。将其移出就绪处理程序或将其添加到就绪处理程序的某个位置,以将其导出到全局范围:
window.processLog=processLog;
您的代码可能如下所示:
$(function() {
function processLog(/* ... */) {
// ...
}
});
有些事情需要将代码包装到就绪处理程序中,但它会将processLog
从全局范围中拉出来。将其移出就绪处理程序或将其添加到就绪处理程序的某个位置,以将其导出到全局范围:
window.processLog=processLog;
在哪里声明了processLog()
?将$('textarea.chatroom\u textarea')。值更改为静态值,然后它会工作吗?最好能看到完整的HTML文件。javascript是外部的还是在同一个文件中?声明了processLog()
的位置在哪里?将$('textarea.chatroom\u textarea')。值更改为静态值,然后它会工作吗?最好能看到完整的HTML文件。javascript是外部的还是在同一个文件中?