Привет!
Есть вот такой несложный объект:
var MyMsg = {
// отправка сообщения -------------------------------------------------
sendMsg: function (myid) {
// проверим AJAX-ом не добавлялось ли сегодня такое сообщение
ReadFromSrv(
'ajaxresp',
'chkmsg.php',
'text='+$('TXT').value+ '&myid='+myid,
'GET'
);
// ждем ответа и отправим форму
var tmr = setInterval(
function () {this.sendFormOnResponce();},
20 // интервал в милисекундах
);
}
// отправить форму -----------------------------------------------------
sendForm: function () {
$('BAD').value = 'BAD';
$('msgadd').submit();
},
// если пришел ответ от сервера, то отправим форму ---------------------
sendFormOnResponce: function () {
var res = '';
//проверка есть ли уже ответ от сервера
if ($('ajaxresp').value != '') {
res = $('ajaxresp').value;
} else {
res = false;
}
// если все хорошо, отправить форму
if (res) {
// остановим таймер
clearInterval(tmr);
if (res === '0') {
// отправляем форму
this.sendForm();
} else {
// сервер вернул текст. покажем его
alert(res);
}
}
},
}
Значит, этот код располагается на странице в разделе <BODY> в начале.
На странице есть кнопка у которой в
onclick прописано:
onclick="javascript:MyMsg.sendMsg('$hash');"
Страница загружается без ошибок.
При нажатии на кнопку случается ошибка:
Uncaught exception: TypeError: 'this.sendFormOnResponce' is not a function
Т.е. при нажатии взводится
setInterval, которой передается функция
this.sendFormOnResponce, и которую JS функцией считать не хочет...
Никак не пойму, отчего такая ошибка. Что я делаю не так?
p.s. в не-объектном виде (т.е. в виде набора из отдельных процедур) это все работает, я учусь работать через объекты.