gpt4 book ai didi

Jquery 插件和 $.ajax

转载 作者:行者123 更新时间:2023-12-01 03:23:07 26 4
gpt4 key购买 nike

我正在尝试编写一个基于原型(prototype)模式的 jQuery 插件。

我的问题是,当我使用 $.ajax 函数加载 xml 文件时,我丢失了 this 对象。

例如这项工作:

Plugin.prototype = {        
defaults: {
message: 'Hello world!'
},
init: function() {
this.setStyleAndOptions();
return this;
},
setStyleAndOptions: function() {
alert("setStyleAndOptions : ");
}
}

但事实并非如此,我收到一条错误消息“this.setStyleAndOptions 未定义”:

Plugin.prototype = {

defaults: {
message: 'Hello world!'
},
init: function() {
$.ajax({
type: "GET",
url: "param.xml",
dataType: "xml",
success: this.initOptions
});
return this;
},
initOptions: function(dataxml) {
// Error occured here, I suppose "this" is not the plugin anymore
this.setStyleAndOptions();
},
setStyleAndOptions: function() {
alert("setStyleAndOptions");
}
}

感谢您的帮助。

最佳答案

尝试将this存储在变量中:

        init: function() {
var that = this;
$.ajax({
type: "GET",
url: "param.xml",
dataType: "xml",
success: that.initOptions
});
return that;
},

关于Jquery 插件和 $.ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7875606/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com