|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.01.2012, 19:33 | #1 |
Пользователь
Регистрация: 19.07.2011
Сообщений: 70
|
Вопрос по библиотеке jQuery
Доброго времени суток!
Пишу свой фреймворк на JS для коммерческой CMS, все бы хорошо но вот с глупой ошибкой столкнулся, точнее даже не с ошибкой, а с не удобностью. Написал свойство некоего объекта аналогичное свойству each() в jQuery, но передавая аргументом функции объект слетает оператор this, а точнее он содержит window: вот код jQuery (эталон)): Код HTML:
<div class="testclass" id="1"></div> <div class="testclass" id="2"></div> <div class="testclass" id="3"></div> Код:
а вот код для моего фреймворка: Код HTML:
<div class="testclass" id="1"></div> <div class="testclass" id="2"></div> <div class="testclass" id="3"></div> Код:
Сам фреймворк скидывать не стал, так как дело в начале объявлений, а вот эти сами объявления: Код HTML:
function Atjs(a) { return new core(a) } var $ = Atjs; function core(a) { this.o = this.find(a); } core.prototype = { find: function(i) { if(typeof i !== 'object') { var s = i[0] var o, val = s === '.' || s === '#' ? i.replace(s,''):i; switch(s) { case '.': o = document.getElementsByClassName(val); break; case '#': o = document.getElementById(val); break; default: o = document.getElementsByTagName(val); break; } } else o=i; return o; }, и т.п. }
Made All in China - MAC OS...
|
17.01.2012, 20:38 | #2 |
Пользователь
Регистрация: 19.07.2011
Сообщений: 70
|
Нашел один способ, но это полнейший "костыль" и не решает проблемы:
1. Создал глобальный массив 2. Переписал объект core: Код:
Made All in China - MAC OS...
|
21.01.2012, 18:49 | #3 |
Пользователь
Регистрация: 19.07.2011
Сообщений: 70
|
что то совсем нет участия в посте, может вопрос как то не так поставил?
Made All in China - MAC OS...
|
21.01.2012, 19:10 | #4 |
Форумчанин
Регистрация: 08.07.2010
Сообщений: 679
|
Наберите в гугле "ООП javascript" и увидите, почему не пишут - потому что этот самый ООП (вместе с this) на js можно реализовать сотней способов, каждый день придумывают всякие конструкторы, фреймворки и костыли, чтобы изобразить полноценные классы, там где их нет.
Чтобы вам рассказать, на что указывает this в js в разных случаях, мне понадобится написать статью, чего делать не хочется, благо их в интернете куча. Что касается примеров, посмотрите лучше в mootools - там оно лучше выглядит, чем в jquery |
21.01.2012, 20:34 | #5 |
Пользователь
Регистрация: 19.07.2011
Сообщений: 70
|
Спасибо обязательно посмотрю.
Made All in China - MAC OS...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопрос по контенту на jQuery | SweetOpium | JavaScript, Ajax | 3 | 08.12.2011 18:21 |
Вопрос про jQuery. | Arkaim | JavaScript, Ajax | 5 | 10.11.2011 21:54 |
вопрос по библиотеке | JIeka | Общие вопросы C/C++ | 8 | 26.08.2011 18:19 |
В библиотеке | Mika_32 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 04.04.2010 19:00 |
Вопрос по библиотеке jQuery | Help_me | JavaScript, Ajax | 5 | 04.03.2009 12:57 |