Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Получить this (https://javascript.ru/forum/events/56875-poluchit.html)

рони 08.07.2015 12:54

Цитата:

Сообщение от KosBeg
Ты/Вы уверен/ы?

да, смотреть вторая строка по ссылке ниже
http://javascript.ru/forum/events/56...tml#post377936

KosBeg 08.07.2015 13:05

Цитата:

Сообщение от рони
да, смотреть вторая строка по ссылке ниже

понятно, сам код написал - поэтому и уверен =)
общем я пример написал - пост здан :yes:
Цитата:

Сообщение от Rise
а зачем функцию инициализации в прототип засунул

учился по jQuery =)
там так же через прототип :yes:
=======================================
я наверное тупой но в мозиле все работает...
<html><head><meta charset="UTF-8"><title>Document</title></head>
<body>
<a href="http://vk.com">1 ссылка</a><br>
<a href="http://vk.com">2 ссылка</a><br>
<a href="http://vk.com">3 ссылка</a><br>
<a href="http://vk.com">4 ссылка</a>

<script type="text/javascript">
function _init_(el){
  this.s = document.querySelectorAll(el);
}

function _A_(el){
  return new _init_(el)      
}

// установка обработчиков
_init_.prototype.on = function(event, func, param){
  for(var i = 0; i < this.s.length; i++){
    addEvent(this.s[i], event, func, param);
  }
};

//addEvent минифицировал что бы не маячило перед глазамы
function addEvent(a,b,c,d){a.addEventListener?a.addEventListener(b,c,d||!1):a.attachEvent("on"+b,c);return!1};

// а вот и наш метод
_A_('a').on('click', function(event){
  console.log(this);
  event.preventDefault();
});
</script></body></html>

рони 08.07.2015 13:30

KosBeg,
проблема не в console.log(this);

а в
Цитата:

Сообщение от Rise
console.log(Helper(this));

Цитата:

Сообщение от рони
не решает проблему, elem как и у sash003, только строка а инициализировать надо строку, елемент или nodeList

название темы не отражает существа проблемы -- проблема не с this, а с инициализацией this

рони 08.07.2015 13:31

Цитата:

Сообщение от KosBeg
this.s = document.querySelectorAll(el);

это надо переделать

KosBeg 08.07.2015 13:37

теперь понял, если условно описать то что происходит - то получается так =)
param = document.querySelectorAll(document.querySelector('a'));
console.log(param);

я правильно понял?

рони 08.07.2015 13:45

KosBeg,
да

sash003 08.07.2015 15:31

Да, у меня через queryselectorAll делается выборка
function _init_(el){
       this.s = document.querySelectorAll(el);
   }
   
 // главная и самая сложная функшн
 function _A_(el){
     return new _init_(el)      
 }
_init_.prototype.on = function(event, func, param){
    for(var i = 0; i < this.s.length; i++){
        addEvent(this.s[i], event, func, param);
    }
    //return this;
}

Я не знаю как переделать, подскажите

рони 08.07.2015 15:36

sash003,
без защиты от дурака
function _init_(el){

       this.s = typeof el == "string" ? document.querySelectorAll(el) : el.length ? el : [el];

   }

sash003 08.07.2015 16:09

рони,
Благодарочка, теперь и parent - функция работает, и вобще всё круто!! :)
А насчёт защиты от дураков, их мильёны, от них не защитишься.. пусть себе, подумаешь, не буде работать просто

KosBeg 08.07.2015 17:50

Цитата:

Сообщение от Rise
решили повторить путь товарища Резига? :D

я сейчас точно нет, хотя в прошлом(месяц назад) хотел, а вот по поводу sash003 незнаю :D


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