另一种方法是Javascript中的函数堆叠
我正在寻找一种更好的方法来做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);
// 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()
作为参数时起作用?