Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Последовательность функций как в jquery (https://javascript.ru/forum/events/30898-posledovatelnost-funkcijj-kak-v-jquery.html)

platedz 19.08.2012 23:54

Т.е. должно получиться примерно это
tel = function(window){
sdf = document.getElementById("apslaed");
return {

 first: function () {

 alert(sdf.innerHTML);
 return this;
},

 second: function () {

 alert(sdf.id);
 return this;
}

}

}(window);

tel.first().second();

но sdf нужно определить впереди, перед first и second, как это делается в jqeury, а не внутри функции как в примере выше

cyber 20.08.2012 00:06

можно так
<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>

    <div id='fignya'>что то типо текста</div>  
    <script>

    

var elem = document.getElementById('fignya');
      
      function ElelemMethod () {
      
       var self = this; 
        
       self.alert1 = function () {
        
       alert(this.innerHTML)
       return self;
      }
      
      self.alert2 = function () {
        
       alert(this.id)
       return self;
      }   
      
        
      return self;  
      } 
      
     ElelemMethod.call(elem).alert1().alert2(); 
    </script>

  </body>
</html>

можно использовать bind или прототипное наследование (в нем не шарю, еще 2 главы до него :))

platedz 20.08.2012 00:30

Спасибо всем кто ответил. Сам бы не справился.

Я сделал так

tel = function(window){

return {
elems : function(e) { dd = document.getElementById(e);  return this;},
 first: function () {

 alert(dd.innerHTML+" - "+this);
 
 return this;
},

 second: function () {

 alert(dd.id+" - "+this);
 return this;
}

}

}(window);

tel.elems("apslaed").first().second();

Теперь хотелось бы вот эту часть tel.elems привести к одному знаменателю например к $ как в jqueru

Подскажите, как это сделать.

cyber 20.08.2012 00:34

не совсем понял что вы хотите

platedz 20.08.2012 00:36

убрать точку отсюда tel.elems,
а точнее сделать так, чтобы вметос tel.elems писать скажем $
Т.е чтобы tel.elems == $
и записать все это как

$("apslaed").first().second();

cyber 20.08.2012 00:42

$ - это имя функции, сделайте функцию с таким именем =)

platedz 20.08.2012 00:52

А как я это сделаю.
Я могу сделать так

$.elems("apslaed").first().second();
или так
tel.$("apslaed").first().second();
а нужно так
$("apslaed").first().second();

cyber 20.08.2012 00:55

Цитата:

$.elems("apslaed").first().second();

$ - обьект
Цитата:

tel.$("apslaed").first().second();

$-метод
Цитата:

$("apslaed").first().second();

$-функция

platedz 20.08.2012 01:01

Спасибо за пояснение.
А можно как то записать теперь функцию, чтобы она выполняла метод elems объекта tel?
Или может снести куда-нибудь метод, или переопределить его как-то, я честно говоря даже не знаю.

cyber 20.08.2012 01:33

можно так ,но я не уверен что это правильно решение (в прототипах еще не шарю), если я не прав поправьте меня
<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>

    <script>

        var object_ = {
      
        first: function () {
        
        alert('one');
          
        return this;
        }
      
      }
      
      function $() {
        
       
       
          
         return {}.prototype = object_; 
     }
     
    
      
    
      
     
      
      
        $().first();
       
   
      
    </script>
    

  </body>
</html>


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