Функция работает, но сообщает this.refresh () не является функцией - PullRequest
1 голос
/ 29 января 2011

Я получаю 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 голосов
/ 29 января 2011

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

посмотрите на ваш ответ.Вы устанавливаете пол в обработчике кликов.Ваше недопонимание того, как работает this.

this в askGender относится к вашему объекту персонажа.Когда обработчик onClick get с именем this будет ссылаться на объект DOM в вашем методе setGender.

Для записи .refresh - это метод его объекта Character.

Веськод большой и требует тщательной отладки.Похоже, вы редактируете открытый исходный код и пытаетесь использовать его так, как он не предназначен для использования.

...