|
Последовательность функций как в 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, время: 21:40. |
|