Javascript объект неоднозначная проблема - PullRequest
2 голосов
/ 27 сентября 2010

это очень и очень странная проблема ...

см. Этот код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
<head>
<title>TEST</title>
<script src="http://misc.fandongxi.com/js/jquery.1.4.js" type="text/javascript"></script>
</head>
<body>

<a href="#" id="p1">click this to change p1.x</a>
<a href="#" id="p2">click this to change p2.x</a>

<input id="p1_val" value="">
<input id="p2_val" value="">

<script language="JavaScript">

a = function(id) {

    this.inputid = id+'_val';
    othis = this;
    $('#'+id).click(function(){
        othis.x += 1;
        $('#'+othis.inputid).val(othis.x);
    });

}


p1 = new a('p1');
p1.x=1;
p2 = new a('p2');
p2.x=1;

</script>


</body>
</html>

Я хочу щелкнуть по идентификатору «p1», чтобы p1.x добавить 1, и нажать «P2», чтобы p2.x добавить 1

.

но

проблема заключается в том, чтобы щелкнуть по любому из них ... p2.x добавит 1

в ожидании ответа ....

большое спасибо :) 1014 *

Я плохо разбираюсь в английском .... может быть, я не решаю проблему ясно;

Ответы [ 2 ]

3 голосов
/ 27 сентября 2010

Я не совсем уверен, какова ваша общая цель, но ошибка, о которой вы спрашиваете, здесь:

othis = this;

Должно быть объявлено с var:

var othis = this;

В настоящее время существует только один othis, так как это глобальная переменная при использовании без ключевого слова var перед ним.

Вы можете увидеть обновленную / рабочую версию здесь .

2 голосов
/ 27 сентября 2010

Вам нужно охватить othis до функции. В настоящее время он используется в качестве глобальной переменной.

var othis = this;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...