函数工作但报告this.refresh()不是一个函数

时间:2011-01-29 15:17:47

标签: javascript refresh this

我得到this.refresh()在每次使用此函数时都不是错误日志中的函数,但它工作正常。

另外,当我第一次点击这个函数时,this.value = undefined。当我在此表单和其他所有表单中再次单击该函数时,该值将使用之前的值填充。

我可能做错了什么?

如何更有效地编写此功能?

我仍然不太明白如何使用this.value来捕获和存储数组中的值。

function askGender(x) {
    response = "<select class=widgetstyle onClick=_setGender(this.value)><option value=Female>Female<option value=Male>Male</select>";
    characters[x].setGender(response);
    if (this.gender != 0) {
        response = this.gender;
        this.gender = 0;
        characters[x].setGender(response);
    }
}

function _setGender(x) {
    this.gender = x;
    this.refresh();
}

1 个答案:

答案 0 :(得分:0)

response = "<select class=widgetstyle onClick=_setGender(this.value)><option value=Female>Female<option value=Male>Male</select>";

看看你的回答。您可以在单击处理程序中设置性别。您对this如何运作的误解。

this中的

askGender引用您的角色对象。当onClick处理程序被称为this时,将引用setGender方法中的DOM对象。

对于记录.refresh是他的Character对象的方法。

整个代码很大,需要彻底调试。看起来您正在编辑开源代码并尝试以不适合使用的方式使用它。