Показать сообщение отдельно
  #1 (permalink)  
Старый 31.10.2010, 15:34
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

ООП: теряется метод
Такое дело, вот написал под себя маленькую функцию для удобства AJAX соединения:
function ajax(params, url, method, box, callback){
  this.params=params; this.queryStr=''; this.url=url; this.method=method; this.box=box;
  if(callback){this.callback=callback;}
}

ajax.prototype.query=function(){
  xmlhttp.open(this.method, this.url, true);
  xmlhttp.onreadystatechange = function(){
  if(xmlhttp.readyState==4){
  if(this.box!=null){
  if(typeof(this.box)!='string'){this.box.innerHTML=xmlhttp.responseText;}
  else {$(this.box).innerHTML=xmlhttp.responseText;}}
  if(this.callback && typeof(this.callback)=='function'){alert('true'); this.callback();}}}
  xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
  for(var key in this.params){
  if(keys==0){this.queryStr+=key+'='+this.params[key];} else 
  {this.queryStr+='&'+key+'='+this.params[key];}
  keys++;}
  xmlhttp.send(this.queryStr);
  }

Вызываю так:
var someVar=new ajax({a:5, b:6, c:7}, '/some.php', 'post', null, function(){...});
someVar.query();

И почему то в методе query нет доступа к this.callback, а если проверку typeof запустить то покажет 'undefined', не могу понять почему, ведь к остальным свойствам доступ отличный.
P.S. Сам код правильный, проверял.

Последний раз редактировалось Vulkan, 09.11.2010 в 19:48.
Ответить с цитированием