另一种方法是Javascript中的函数堆叠

另一种方法是Javascript中的函数堆叠,javascript,jquery,ajax,function,reference,Javascript,Jquery,Ajax,Function,Reference,我正在寻找一种更好的方法来做JavaScript中常见的事情。我如何做到这一点: // global namespace var PlexLib = PlexLib || {}; PlexLib = { FileName : "", ShowName : "", AddFileSelector_result : function (data,status,xhr) { console.log ("Callback here." + data);

我正在寻找一种更好的方法来做JavaScript中常见的事情。我如何做到这一点:

// global namespace
var PlexLib = PlexLib || {};
PlexLib = {
    FileName : "",
    ShowName : "",
    AddFileSelector_result : function (data,status,xhr) {
        console.log ("Callback here." + data);
        console.log ("Callback here." + status);
        console.log ("Callback here." + xhr);
    },
    AddFileSelector : function () {
        var afs = this.AddFileSelector_result();
        $.get(script_name ,"AddFileSelector=AddFileSelector",afs,"html");
    },
    RemoveFileSelector : function () {
        console.log ("Do Remove.");
    },
}
好的,在
$.get(script_name,“AddFileSelector=AddFileSelector”,afs,“html”)
问题在于
afs

.get请求的规范为:

$.get(URL,data,function(data,status,xhr),dataType)
我在上面提到的是,当回调发生时,我要么得到数据中的“未定义”(
数据,状态,xhr
),要么得到传入的整个脚本。我也不知道这是怎么发生的

所以,我想问的是,当我看到这样一个定义:

$.get(URL,data,function(data,status,xhr),dataType)
如何执行
功能(数据、状态、xhr)
部分,我希望它是对正常的:

function () {
} 

在其他地方定义。

不要在此处调用函数:

var afs = this.AddFileSelector_result();
将其作为指针传递:

var afs = this.AddFileSelector_result;

因此,当AJAX请求完成时,它将使用正确的参数进行调用。

这就停止了“未定义”的操作。我现在在
数据中获取脚本的内容。服务器进程应该用
脚本响应这里的
我已经手动尝试了请求,`AddFileSelector=AddFileSelector',它确实正确响应了。还有什么我想说的吗?在
数据
变量中没有得到预期的结果吗?您是否查看了“网络”选项卡以分析发送回的确切数据?请求是否指向正确的url?是和否。该脚本由php脚本提供,因为它在将其放入页面之前编辑了一些字段。查看网络窗格后,我看到
JS
仍在被发回。我不知道为什么
.get
会包含它。我颠倒了CASE select语句中的顺序,首先查找AddFileSelector,现在得到了正确的结果,但是为什么
.get
生成
?JS&AddFileSelector=AddFileSelector
JS
是来自脚本头的仅获取javascript的查询,但不包括在上面的.get查询中。??尝试像这样传递参数:
$.get(脚本名称,{AddFileSelector:'AddFileSelector'},afs,'html')同时检查
脚本名称
变量内容。我怀疑它已经包含了
?JS
部分,这就是它被发送的原因。因此,请确保该
script\u name
变量指向实际脚本,而不包含任何其他查询字符串参数。不,它仍在添加它。我知道脚本名称不包括它。我查过了。这可能是jQuery如何确定脚本名称的问题吗?请求页面的HTML是
echo'jQuery是否会对这是如何实现的感到困惑?(我经常移动和重命名我的脚本,所以…)顺便说一句,你的答案是它自己的,它是否在我看到
function()
作为参数时起作用?