jquery在上下文中调用JS方法
jquery invoke JS method in context
我们在应用程序中使用jQuery
进行AJAX调用。如何使用jQuery
在特定上下文中创建方法?在dojo
中,我们过去常常使用dojo.hitch()
。jQuery中有类似的东西吗?下面是我们正在使用的示例代码。我需要在SampleMethod
的上下文中执行success
处理程序。以下代码应由于resultSetHandler
在窗口上下文中不可用,因此给我一个例外。你能告诉我吗。
我们使用的是jQuery
版本1.3.2
function SampleMethod(){
this.invokeProcedure=function(procedurePath){
$.ajax({
type: "GET",
url: procedurePath,
dataType: "json",
success: resultSetHandler,
error: errorHandler
});
}
this.resultSetHandler=function(args){
//Handle the result
}
this.errorHandler=function(args){
//Handle the result
}
}
var sampleObj=new SampleMethod();
sampleObj.invokeProcedure('url');
只需保留this
并将其封装在函数中:
this.invokeProcedure=function(procedurePath){
var savedThis = this;
$.ajax({
type: "GET",
url: procedurePath,
dataType: "json",
success: function() { savedThis.resultSetHandler(); },
error: function() { savedThis.errorHandler(); }
});
}
(可能也应该将"success"函数参数传递给"resultSetHandler"。)
编辑—以上内容将在一般情况下处理这类问题,但@Blaster在评论中正确地指出,jQuery $.ajax
机制提供了一个更简单的解决方案。可以在传入的参数对象中设置context
属性,该值将用作回调的上下文。也就是说,添加:
context: this,
到$.ajax
参数对象将使事情像最初写的那样工作。
这个版本的jQuery已经过时了,您应该升级。您正在寻找的功能是jQuery.proxy
,仅在1.4+中可用
如果你正在升级,尽管你应该考虑升级到最新版本,但你现在只落后于4个主要版本。
如果您在一个不允许升级3.5年前的库的环境中工作,请考虑为自己复制jQuery.proxy
的源代码并使其正常工作。
相关文章:
- 当用户点击动态创建的链接时,如何调用JS方法.JQuery,ASP.NET MVC
- JS方法显示了未定义的简单示例
- 如何从方法内部获取js方法名称
- 如何在Spotify应用程序中创建discincts JS方法
- 正在寻找特定的JS方法来确认单选按钮的选择
- jquery在上下文中调用JS方法
- js方法链尾
- JS方法绑定与2个不同的这个
- Wy js 方法 toFixed() 返回 NaN
- 从链接调用 js 方法
- 正确的方法是什么,使用THREE.js方法来计算相机的偏航
- 为什么 findRandom() mongoose for node.js 方法不起作用
- Node.js 方法不返回任何响应,挂起请求
- 缺点和替代方案 - JS方法链接
- Rhino API-使用org.mozilla.javascript.Context访问js方法
- jQuery/JS方法链接
- 通过ajax调用从js方法返回值到REST服务
- 在JS方法asp.net C#中获取变量的内容
- 从复杂对象中提取选定数组和属性的JS方法/lib
- UIWebView elementFromPoint js方法return'错误'要素