|
Последовательность функций как в jquery
Скажите, пожалуйста, как можно реализовать последовательность функций по типу как это реализовано в джиквери. т.е.
el.func1().func2().func3(); Может быть есть где-то информация по данному поводу. Полдня искал, так и не нашел. Хотя может что-то не то искал. Буду крайне признателен за любую информацию. |
platedz,
Для начала нужен код этих самых функций, судя по записи - это методы http://javascript.ru/tutorial/object...avlenie-metoda |
они все возвращают this который в свою очередь указывает на вызывающий объект
поэтому после выполнения каждой функции мы получаем тот же объект только модернизирванный добавляй в конце return this вот здесь в самом низу пример есть http://sartas.ru/js-cepochka-funkcij-kak-v-jquery/ |
вызов функций или методов?
методов
var object_ = {
first: function () {
alert('первый');
return this;
},
second: function () {
alert('второй');
return this;
}
}
object_.first().second();
функций
function _object() {
var self = arguments.callee;
self.first = function () {
alert('первый');
return self;
}
self.second = function () {
alert('второй');
return self;
}
return self;
}
_object().first().second();
|
Спасибо. Буду разбираться и пробовать.
|
Последовательность сама по себе вышла, но если соответствовать методу jquery, то мы должны первым объявить элемент, а потом уже назначать ему методы.
Я написал так
tel = function(window){
return {
elemmm : function(e){ return document.getElementById(e); },
first: function (w) {
alert(w);
return this;
},
second: function (w) {
alert(w);
return this;
}
}
}(window);
tel.first(tel.elemmm("apslaed"));
Но это не правильно, тк. должно быть примерно так или навроде того
tel.elemmm("apslaed").first();
|
platedz,
Вы просто присвойте потом tel =$("apslaed") |
мой совет, лучше делайте так
function test () {
var self = this;
this.first = function () {
alert('one');
return self;
}
this.second = function () {
alert('two');
return self;
}
}
var obj = new test();
obj.first().second();
|
cyber отличные примеры спс :)
|
Честно говоря не понимаю, как реализовать. Можно какой-нибудь пример с присвоением элемента и затем последовательного выполнения пары функций.
Т.е. Скажем мы берем элемент и последовательно выводим его к примеру в двух алертах, или что-то подобное.
document.getElementById("id").alert1().alert2();
соответственно alert1 должен вывести alert1(document.getElementById("id").innerHTML) из функции function alert1(e){alert(e.innerHTML);} соответственно alert2 должен вывести alert(document.getElementById("id").id) function alert2(e){alert(e.id);} код абсолютно условный, потому что я даже приблизительно не знаю, как его написать. Помогите, пожалуйста. |
| Часовой пояс GMT +3, время: 23:08. |
|