这应该很简单,但由于我是编程的新手,特别是在javascript中,我无法理解。
假设我有以下javascript代码:
var InjectClientValue = Class.create();
InjectClientValue.prototype = {
initialize: function( sourceElement, eventElement, updateElement ) {
this.sourceElement = $(sourceElement);
this.element = $(eventElement);
this.updateElement =$(updateElement)
this.element.observe('click',this.onClick.bindAsEventListener(this));
},
onClick: function(event) {
new Ajax.Request(this.element.href+"/"+this.sourceElement.value, {
method:'get',
onSuccess: function(transport) {
//How do I access the instance variable updateElement in InjectClientValue_
//updateElement.update(transport.responseJSON.content);
}
});
event.stop();
}
}
我需要的是从新的Ajax.Request的onSuccess访问初始化中设置的变量updateElement。我该怎么办?
答案 0 :(得分:1)
试试这个:
onClick: function(event) {
var thisVariable = this;
new Ajax.Request(this.element.href+"/"+this.sourceElement.value, {
method:'get',
onSuccess: function(transport) {
thisVariable.updateElement.update(transport.responseJSON.content);
}
答案 1 :(得分:0)
由于您已经将该类的实例作为“InjectClientValue”,您可以使用它来引用该对象并在其上调用方法。
onClick: function(event) {
new Ajax.Request(this.element.href+"/"+this.sourceElement.value, {
method:'get',
onSuccess: function(transport) {
InjectClientValue.updateElement.update(transport.responseJSON.content);
}