Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.08.2012, 21:35
Профессор
Отправить личное сообщение для platedz Посмотреть профиль Найти все сообщения от platedz
 
Регистрация: 15.08.2012
Сообщений: 285

Последовательность функций как в jquery
Скажите, пожалуйста, как можно реализовать последовательность функций по типу как это реализовано в джиквери. т.е.

el.func1().func2().func3();

Может быть есть где-то информация по данному поводу. Полдня искал, так и не нашел. Хотя может что-то не то искал.

Буду крайне признателен за любую информацию.
Ответить с цитированием
  #2 (permalink)  
Старый 19.08.2012, 21:37
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

platedz,
Для начала нужен код этих самых функций, судя по записи - это методы

http://javascript.ru/tutorial/object...avlenie-metoda

Последний раз редактировалось Deff, 19.08.2012 в 21:40.
Ответить с цитированием
  #3 (permalink)  
Старый 19.08.2012, 21:40
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

они все возвращают this который в свою очередь указывает на вызывающий объект
поэтому после выполнения каждой функции мы получаем тот же объект только модернизирванный
добавляй в конце return this
вот здесь в самом низу пример есть
http://sartas.ru/js-cepochka-funkcij-kak-v-jquery/

Последний раз редактировалось vadim5june, 19.08.2012 в 21:48.
Ответить с цитированием
  #4 (permalink)  
Старый 19.08.2012, 21:54
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

вызов функций или методов?
методов
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();
Ответить с цитированием
  #5 (permalink)  
Старый 19.08.2012, 22:09
Профессор
Отправить личное сообщение для platedz Посмотреть профиль Найти все сообщения от platedz
 
Регистрация: 15.08.2012
Сообщений: 285

Спасибо. Буду разбираться и пробовать.
Ответить с цитированием
  #6 (permalink)  
Старый 19.08.2012, 23:04
Профессор
Отправить личное сообщение для platedz Посмотреть профиль Найти все сообщения от platedz
 
Регистрация: 15.08.2012
Сообщений: 285

Последовательность сама по себе вышла, но если соответствовать методу 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();
Ответить с цитированием
  #7 (permalink)  
Старый 19.08.2012, 23:06
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

platedz,
Вы просто присвойте потом tel =$("apslaed")
Ответить с цитированием
  #8 (permalink)  
Старый 19.08.2012, 23:11
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

мой совет, лучше делайте так

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();
Ответить с цитированием
  #9 (permalink)  
Старый 19.08.2012, 23:20
Профессор
Отправить личное сообщение для bot87 Посмотреть профиль Найти все сообщения от bot87
 
Регистрация: 16.05.2011
Сообщений: 307

cyber отличные примеры спс
__________________
Я только учусь.Ногами просьба не бить
Ответить с цитированием
  #10 (permalink)  
Старый 19.08.2012, 23:46
Профессор
Отправить личное сообщение для platedz Посмотреть профиль Найти все сообщения от platedz
 
Регистрация: 15.08.2012
Сообщений: 285

Честно говоря не понимаю, как реализовать. Можно какой-нибудь пример с присвоением элемента и затем последовательного выполнения пары функций.
Т.е. Скажем мы берем элемент и последовательно выводим его к примеру в двух алертах, или что-то подобное.
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);}

код абсолютно условный, потому что я даже приблизительно не знаю, как его написать.
Помогите, пожалуйста.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery UI Slider - как синхронизировать слайдер со значнием? frightened jQuery 0 24.07.2011 00:19
Необходимы советы как убирать не нужное из библиотеки jquery. dr_gluk jQuery 13 18.07.2011 12:05
Как получить список пользовательских функций объекта window? Маэстро Events/DOM/Window 13 03.07.2010 13:20
Как отключить submit формы в jQuery? khusamov Общие вопросы Javascript 2 08.07.2009 00:54
Как правильно подгрузить jQuery Siton jQuery 4 15.06.2009 09:54