Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проблемы с возвращаемым значением (https://javascript.ru/forum/misc/27525-problemy-s-vozvrashhaemym-znacheniem.html)

(Sandr) 16.04.2012 04:03

Проблемы с возвращаемым значением
 
Всем привет)
Вот код спойлера:

function j(data) {
  return new operation(data);
}
function operation(data) {
  this.obj = document.getElementById(data);
  return this;
}
operation.prototype.spoiler = function(data) {
	var cObj = this.obj;
	var sObj = j(data['change']).obj;
	cObj.onclick = function() {
		sObj.style.display == 'none' ? sObj.style.display = 'block' : sObj.style.display = 'none';
	}
};
j('click').spoiler({change: 'change'});


Всё в роде бы норм. Но вот когда хочу сделать так, что бы код: j('element') возвращал объект элемента, вылетают ошибки.

Ниже изменённый код, в котором происходят ошибки:

function j(data) {
  return new operation(data);
}
function operation(data) {
  this.obj = document.getElementById(data);
  return this.obj;
}
operation.prototype.spoiler = function(data) {
	var cObj = this.obj;
	var sObj = j(data['change']);
	cObj.onclick = function() {
		sObj.style.display == 'none' ? sObj.style.display = 'block' : sObj.style.display = 'none';
	}
};
j('click').spoiler({change: 'change'});


Текст ошибки в хроме: "Uncaught TypeError: Object #<HTMLSpanElement> has no method 'spoiler' ".
Подскажите, в чём тут проблема?

(Sandr) 16.04.2012 11:23

nasqad,
ну я об этом уже догадался)) Но почему?

Maxmaxmахimus,
ну вот я и пытаюсь вернуть this.obj, но возникают ошибки..


Часовой пояс GMT +3, время: 03:15.